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

时间:2014-04-26 04:19:29

标签: c++ linux linker g++ shared-libraries

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

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

但是当我尝试将二进制文件与此lib链接时,请写下以下内容:

g++ -o bin -L. -ltest -Wl,-rpath.

链接器尝试搜索libtest.so而没有任何版本号。

如何将具有版本号的lib名称传递给-l链接器选项?

1 个答案:

答案 0 :(得分:5)

试试这个:

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

通常情况下,在Linux上至少使用-lnamespaceld会尝试在其库搜索路径列表中找到名为libnamespace.solibnamespace.a的文件,但是使用-l:namespaceld将在其库搜索路径列表中搜索名为namespace的文件。