www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Dub failing to detect Shared Libraries

reply "Rishub Nagpal" <rishubster gmail.com> writes:
I am porting DerelictBGFX to linux, but I am having some 
problems. When I run the dub command in my example directory, I 
get the following error :

derelict.util.exception.SharedLibLoadException ../../../.dub/packages/derelict-util-1.0.2/source/derelict/u
il/exception.d(35): 
Failed to load one or more shared libraries:
	libbgfx-shared-libRelease.so - libbgfx-shared-libRelease.so: 
cannot open shared object file: No such file or directory
	libbgfx-shared-libDebug.so - libbgfx-shared-libDebug.so: cannot 
open shared object file: No such file or directory


Here is the file I edited to detect those libaries : 
https://github.com/shrub77/DerelictBgfx/blob/master/source/derelict/bgfx/bgfx.d#L55

Here is the dub.json :
{
     "name": "00-helloworld",

     "sourcePaths": ["."],
     "targetType": "executable",
     "mainSourceFile": "helloworld.d",

     "dependencies":
     {
         "gfm:sdl2": ">=1.1.4",
         "derelict-bgfx": {"path": "../../", "version": "~master"}
     }
}

Where should I put the *.so files so they can be detected 
properly by dub?

Rishub
Aug 05 2014
parent Mike Parker <aldacron gmail.com> writes:
On 8/6/2014 2:53 AM, Rishub Nagpal wrote:
 I am porting DerelictBGFX to linux, but I am having some problems. When
 I run the dub command in my example directory, I get the following error :

 derelict.util.exception.SharedLibLoadException ../../../.dub/packages/derelict-util-1.0.2/source/derelict/util/exception.d(35):
 Failed to load one or more shared libraries:
      libbgfx-shared-libRelease.so - libbgfx-shared-libRelease.so: cannot
 open shared object file: No such file or directory
      libbgfx-shared-libDebug.so - libbgfx-shared-libDebug.so: cannot
 open shared object file: No such file or directory


 Here is the file I edited to detect those libaries :
 https://github.com/shrub77/DerelictBgfx/blob/master/source/derelict/bgfx/bgfx.d#L55


 Here is the dub.json :
 {
      "name": "00-helloworld",

      "sourcePaths": ["."],
      "targetType": "executable",
      "mainSourceFile": "helloworld.d",

      "dependencies":
      {
          "gfm:sdl2": ">=1.1.4",
          "derelict-bgfx": {"path": "../../", "version": "~master"}
      }
 }

 Where should I put the *.so files so they can be detected properly by dub?

 Rishub
This has nothing to do with dub. You need to install the shared libraries manually so that Derelict can pick them up at run time. They need to be on the global library search path, whatever that may be for your system. --- This email is free from viruses and malware because avast! Antivirus protection is active. http://www.avast.com
Aug 05 2014