c++ - 如何使用版本名将二进制文件与库链接

原文 标签 c++ linux linker g++ shared-libraries

让我用g++编译一个共享库,如下所示

g++ -shared -Wl,-soname,libtest.1.0 -o libtest.1.0.1 test.o

但是,当我试图将二进制文件与此库链接时,请编写以下内容:
g++ -o bin -L. -ltest -Wl,-rpath.

链接器试图在没有任何版本号的情况下搜索so
如何将带有版本号的lib名称传递给libtest.so链接器选项?

最佳答案

试试这个:

g++ -o bin -L. -Wl,-rpath=. -l:libtest.1.0.1

通常,至少在Linux上,with-lnamespaceld将尝试在其库搜索路径列表中查找名为libnamespace.solibnamespace.a的文件以链接,但是with-l:namespaceld将在其库搜索路径列表中搜索名为namespace的文件。

相关文章:

c++ - 用花括号初始化一个std :: array的元组

linux - 了解shebang行中的awk -f选项

php - Linux apache中php文件的根路径

c++ - 链接器无法找到__assert_fail

c++ - 我将使用哪个HWND在WinMain函数中创建对话框?

c++ - 读取.bmp文件c ++,值错误?

c++ - 错误:magic.h:没有这样的文件或目录(MacOS X V 10.6.8)

windows - DLL中未解决的符号错误

c++ - 为什么我的NAN_METHOD无法识别?

linux - 管理从源代码编译的软件包的最佳方法