让我用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
链接器选项?
答案 0 :(得分:5)
试试这个:
g++ -o bin -L. -Wl,-rpath=. -l:libtest.1.0.1
通常情况下,在Linux上至少使用-lnamespace
,ld
会尝试在其库搜索路径列表中找到名为libnamespace.so
或libnamespace.a
的文件,但是使用-l:namespace
,ld
将在其库搜索路径列表中搜索名为namespace
的文件。