我想使用makefile将我的C ++可执行文件链接到静态(libStatic.a
)和共享(libShared.so
)库。
到目前为止,makefile具有以下内容:
myExe: main.cpp libStatic.a libShared.so
g++ main.cpp libStatic.a libShared.so
我很确定静态链接是正确的,因为我在别处看到过类似的东西。我不确定的是共享链接部分。它是否正确?或者以不同的方式链接到静态库?
如果我运行make,那么它似乎没问题,并创建可执行文件。但是,当我执行此操作时,我会发现错误:
/usr/bin/ld: cannot find -lShared
但是,我的可执行文件和libShared.so
位于同一目录中。
答案 0 :(得分:1)
在运行程序之前,需要将LD_LIBARY_PATH
设置为共享对象所在的目录。
你可以阅读' rpath'在man ld
中寻找其他可能性。