我很抱歉这是多余的,但没有一个可用的答案似乎能够解决我的问题。我试图使用共享对象库编译可执行文件。共享对象库名为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
然后可执行文件编译/链接,一切都很好。有没有人想过我可能做错了什么?
答案 0 :(得分:2)
使用'-l'选项和指定文件之间的唯一区别 name是'-l'用'lib'和`.a'围绕库并进行搜索 几个目录。