使用makefile和g ++链接到静态库

时间:2015-07-15 20:22:54

标签: c++ makefile g++

我想使用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位于同一目录中。

1 个答案:

答案 0 :(得分:1)

在运行程序之前,需要将LD_LIBARY_PATH设置为共享对象所在的目录。

你可以阅读' rpath'在man ld中寻找其他可能性。