使用 makefile 和 g++ 链接到静态库
Linking to a static library with a makefile and g++
我想 link 我的 C++ 可执行文件到静态 (libStatic.a
) 和共享 (libShared.so
) 库,使用 makefile。
到目前为止的 makefile 包含以下内容:
myExe: main.cpp libStatic.a libShared.so
g++ main.cpp libStatic.a libShared.so
我相当确定静态 linking 是正确的,因为我在别处看到过类似的东西。我不确定的是共享 linking 部分。这个对吗?或者 link 对静态库的处理方式不同?
如果我 运行 make,那么它似乎没问题,并创建了可执行文件。但是,当我执行此操作时,我收到错误消息:
/usr/bin/ld: cannot find -lShared
但是,我的可执行文件和 libShared.so
在同一目录中。
您需要将 LD_LIBARY_PATH
设置为共享对象所在的目录,然后再 运行 您的程序。
您可以阅读 man ld
中的 'rpath' 了解其他可能性。
我想 link 我的 C++ 可执行文件到静态 (libStatic.a
) 和共享 (libShared.so
) 库,使用 makefile。
到目前为止的 makefile 包含以下内容:
myExe: main.cpp libStatic.a libShared.so
g++ main.cpp libStatic.a libShared.so
我相当确定静态 linking 是正确的,因为我在别处看到过类似的东西。我不确定的是共享 linking 部分。这个对吗?或者 link 对静态库的处理方式不同?
如果我 运行 make,那么它似乎没问题,并创建了可执行文件。但是,当我执行此操作时,我收到错误消息:
/usr/bin/ld: cannot find -lShared
但是,我的可执行文件和 libShared.so
在同一目录中。
您需要将 LD_LIBARY_PATH
设置为共享对象所在的目录,然后再 运行 您的程序。
您可以阅读 man ld
中的 'rpath' 了解其他可能性。