我在Ubuntu 14.04.5上构建了一个动态库,该库依赖于一些静态库(Boost和OpenSSL)。在Ubuntu上构建库,在Arch上的项目中使用它 - 不会构建
如果我在另一台Ubuntu机器的项目中使用这个库,它可以很好地工作。我建设我的项目有以下
main.cpp.o: In function `init()':
main.cpp:(.text+0xf8): undefined reference to `Util::generateString[abi:cxx11](int)'
:
g++ -Ldeps -Ideps/include main.cpp -lmylib
但是,如果我构建它,并在拱机(Antergos)在项目中使用它,它在生成过程以下称
deps包含libmylib.so和deps/include中所需的头文件。
如果我在我的Ubuntu上运行mylib.so LDD ,我得到如下:
linux-vdso.so.1 => (0x00007ffdd24cf000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f10b2f97000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f10b2c91000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f10b2a73000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f10b26ab000)
/lib64/ld-linux-x86-64.so.2 (0x00007f10b3ff3000)
如果我对Antergos mylib.so运行LDD,我得到如下:
linux-vdso.so.1 (0x00007ffcce115000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f5a42fef000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f5a42cdc000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f5a42abe000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f5a4271a000)
/usr/lib64/ld-linux-x86-64.so.2 (0x000055ced49a7000)
我可能错过了一些简单的东西,但我似乎无法让它工作。我究竟做错了什么?