libphobos2.so insists on its name while using shared libraries
    tcak via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Sat Nov  8 08:33:01 PST 2014
    
    
  
I am using DMD 2.066.1 on Ubuntu 14.04 64-bit.
I used the latest main.d and dll.d codes from 
http://dlang.org/dll-linux.html
Then I used the following make file:
all:
	cp /usr/lib/x86_64-linux-gnu/libphobos2.so ./libmyphobos2.so
	dmd -c dll.d -fPIC
	dmd -oflibdll.so dll.o -shared -defaultlib=libmyphobos2.so 
-L-rpath=.
	dmd -c main.d
	dmd main.o -L-ldl -defaultlib=libmyphobos2.so -L-rpath=.
clear:
	rm -f *.so
	rm -f *.o
Since the "defaultlib" flag of dmd takes a shared library file 
name, and not a keywork as only "libphobos", I thought that if I 
copy my libphobos2.so to active folder with a new name, it should 
be alright. (Please notice I use libmyphobos2.so while compiling, 
and not libphobos2.so.)
---
Then I opened elementary OS Freya 64-bit on Virtual Box, and 
copied libdll.so, libmyphobos2.so, and main files to a folder, 
and set the executable bit of main.
Finally I executed ./main
Result is this:
./main: error while loading shared libraries: libphobos2.so.0.66: 
cannot open shared object file: No such file or directory.
---
The asking library is not even just "libphobos2.so" but with its 
version. Is this completely hard coded somewhere or something?
    
    
More information about the Digitalmars-d-learn
mailing list