C++ 基于libcurl构建共享库
你好,我是编译共享库的新手 我的共享库依赖于curl、ssl和crypto。 我编译了libcurl,输出库是: libcurl.so.4-->libcurl.so.4.3.0 libcurl.so.4.3.0 我使用以下命令编译了我的共享库:C++ 基于libcurl构建共享库,c++,linux,curl,shared-libraries,C++,Linux,Curl,Shared Libraries,你好,我是编译共享库的新手 我的共享库依赖于curl、ssl和crypto。 我编译了libcurl,输出库是: libcurl.so.4-->libcurl.so.4.3.0 libcurl.so.4.3.0 我使用以下命令编译了我的共享库: g++-m32-共享\ -o libtestshared.so.1\ -fPIC../build/*.o\ -lpthread\ ../openssl/lib/libssl.so.1.0.0\ ../openssl/lib/libcrypto.so.1.
g++-m32-共享\
-o libtestshared.so.1\
-fPIC../build/*.o\
-lpthread\
../openssl/lib/libssl.so.1.0.0\
../openssl/lib/libcrypto.so.1.0.0\
../curl/lib/libcurl.so.4.3.0
但当我弄清楚我的图书馆所依赖的图书馆是什么时,我发现:
ldd libtestshared.so.1
linux-gate.so.1 => (0x00e2a000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00aec000)
libssl.so.1.0.0 => /home/usr1/openssl/lib/libssl.so.1.0.0 (0x0034c000)
libcrypto.so.1.0.0 => /home/usr1/openssl/lib/libcrypto.so.1.0.0 (0x003a8000)
libcurl.so.4 => /home/usr1/curl/lib/libcurl.so.4 (0x001cf000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00229000)
libm.so.6 => /lib/libm.so.6 (0x006be000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00eaf000)
libc.so.6 => /lib/libc.so.6 (0x006e8000)
/lib/ld-linux.so.2 (0x0055e000)
libdl.so.2 => /lib/libdl.so.2 (0x001ba000)
librt.so.1 => /lib/librt.so.1 (0x00314000)
为什么只有libcurl引用符号链接?在
/home/usr1/openssl/lib/
中是否有libssl
和libcrypto
的符号链接?是的,我有,但我需要的不是将我的库链接到libcurl符号链接链接有什么问题?我的意思是你的使用案例共享库软链接表示版本号依赖关系。显然,你的链接器认为“4”版本足够强大-你不需要更详细的版本号?@Miline我的用例是只链接这个版本4.3.0,因为任何人都可以更改符号链接引用。May将其链接到最新版本。