linking issues
Johan Henriksson
mahogny at areta.org
Tue Jun 2 14:39:07 BST 2009
Hello, a user is compiling a package on 64-bit and runs into problems:
http://valelab.ucsf.edu/~nico/MMwiki/index.php/Compiling_MM_and_creating_deb_files_on_64-bit_Ubuntu
*** Warning: Linking the shared library libmmgr_dal_USBManager.la against
the *** static library /usr/lib/libusb.a is not portable! libtool: link: g++
-shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.3.3/crtbeginS.o .libs/USBManager.o
../../MMDevice/.libs/libMMDevice.a /usr/lib/libusb.a
-L/usr/lib/gcc/x86_64-linux-gnu/4.3.3
-L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib -L/lib/../lib
-L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../.. -lstdc++
-lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.3.3/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib/crtn.o -Wl,-soname
-Wl,libmmgr_dal_USBManager.so.0 -o .libs/libmmgr_dal_USBManager.so.0.0.0
/usr/bin/ld: /usr/lib/libusb.a(usb.o): relocation R_X86_64_32 against `a
local symbol' can not be used when making a shared object; recompile with
-fPIC /usr/lib/libusb.a: could not read symbols: Bad value collect2: ld
returned 1 exit status make[2]: *** [libmmgr_dal_USBManager.la] Error 1
make[2]: Leaving directory
`/home/sanguine/research/umanager/micromanager1.3/DeviceAdapters/USBManager'
make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory
`/home/sanguine/research/umanager/micromanager1.3/DeviceAdapters' make: ***
[all-recursive] Error 1
this apparently works for me on 32bit (on debian) but the portability
warning looks bad. what workaround do you suggest? it seems adding -fPIC on
your end would solve it all but I'm no expert on dynamic linking.
--please CC privately, I am not subscribed--
thanks,
Johan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ubuntu.com/archives/ubuntu-motu/attachments/20090602/975577f8/attachment.htm
More information about the Ubuntu-motu
mailing list