我在我的主目录中编译并构建了 casablanca c++ rest 库,我的必要 .so 文件的绝对路径是 .so 文件/home/dev/casablanca/Release/build.release/Binaries/libcpprest.so
。我想要做的是简单地cp
将 .so 文件传递/usr/lib/..
到默认 lib 搜索的路径,../
以便我可以轻松地将其与以下命令链接:
g++ index.cpp -I/home/dev/casablanca/Release/include -lcpprest -std=c++11
编译得很好,但是当我运行 ./a.out 时,我得到了典型的运行时错误:
couldn't load shared library: libcpprest.so
即使在将 libcpprest.so 的默认路径添加到 LD_LIBRARY_PATH 之后。
但是,如果我将最初创建二进制文件的目录链接到:
// ./a.out runs just fine
g++ index.cpp -I/home/dev/casablanca/Release/include \
-L/home/dev/casablanca/Release/build.release/Binaries -lcpprest -std=c++11
我猜我不能简单地将 .so 对象移动到我想添加它的原因是编译器以某种方式保持对它的引用。如何将此二进制文件安装在不同的路径中?