g ++找不到共享库

时间:2016-08-24 22:01:01

标签: c++ c++11 gcc linker g++

我很抱歉这是多余的,但没有一个可用的答案似乎能够解决我的问题。我试图使用共享对象库编译可执行文件。共享对象库名为libsession.so,位于我编译可执行文件的同一目录中。要编译和链接,我使用以下命令

g++ test_main.cpp -o program -std=c++11 -I ../src/base -L. -lsession

不可思议的是,我在链接时遇到找不到-lsession 错误。如果我更改命令以直接引用共享库,如下所示

g++ test_main.cpp -o program -std=c++11 -I ../src/base libsession.so

然后可执行文件编译/链接,一切都很好。有没有人想过我可能做错了什么?

1 个答案:

答案 0 :(得分:2)

  

使用'-l'选项和指定文件之间的唯一区别   name是'-l'用'lib'和`.a'围绕库并进行搜索   几个目录。

https://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_3.html#SEC16