C++ 如何链接我自己的.so文件而不是OS bundle.so文件?
我的构建命令 g++-g-m64-D_FILE_OFFSET_BITS=64-fPIC-I./curl-7.60.0/include-I./jsoncpp-src-0.5.0/include/./jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7/libmt.so/curl-7.60.0/libs/libcurl.so.4.5.0tests.cpp-otestsC++ 如何链接我自己的.so文件而不是OS bundle.so文件?,c++,c,hyperlink,compilation,libcurl,C++,C,Hyperlink,Compilation,Libcurl,我的构建命令 g++-g-m64-D_FILE_OFFSET_BITS=64-fPIC-I./curl-7.60.0/include-I./jsoncpp-src-0.5.0/include/./jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7/libmt.so/curl-7.60.0/libs/libcurl.so.4.5.0tests.cpp-otests .so文件存在 -rwxr-xr-x。1 pswluna开发者529763 2018-05-30 18:48
/curl-7.60.0/lib/.libs/libcurl.so.4.5.0
,但它没有安排在运行时使用该库
以下是所需的命令:
g++ -g -m64 -I./curl-7.60.0/include -I./jsoncpp-src-0.5.0/include/ \
tests.cpp \
-L./jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7 -ljson_linux-gcc-4.4.7_libmt \
-L./curl-7.60.0/lib/.libs -l:libcurl.so.4.5.0 \
-Wl,-rpath=$(pwd)/jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7 \
-Wl,-rpath=$(pwd)/curl-7.60.0/lib/.libs \
-otests
说明:
-rpath
告诉动态加载程序在运行时应该在哪里搜索库-D_FILE\u OFFSET_BITS=64
仅当您在64位操作系统上构建32位二进制文件时才有意义,但您没有这样做-fPIC
在构建主可执行文件时完全没有必要g++ -g -m64 -I./curl-7.60.0/include -I./jsoncpp-src-0.5.0/include/ \
tests.cpp \
-L./jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7 -ljson_linux-gcc-4.4.7_libmt \
-L./curl-7.60.0/lib/.libs -l:libcurl.so.4.5.0 \
-Wl,-rpath=$(pwd)/jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7 \
-Wl,-rpath=$(pwd)/curl-7.60.0/lib/.libs \
-otests