这是我的 .pro 文件:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
DEPENDPATH += /home/khajak/CList/linker
INCLUDEPATH += /home/khajak/CList/linker
LIBS += -L/home/khajak/CList/linker -llibCListManager
LIBS += -L/home/khajak/CList/linker -llibCommandLineEngine
这里是 /home/khajak/CList/linker
目录:
lrwxrwxrwx 1 khajak khajak 24 Mar 30 23:10 libCListManager.so -> libCListManager.so.1.0.0
lrwxrwxrwx 1 khajak khajak 24 Mar 30 23:10 libCListManager.so.1 -> libCListManager.so.1.0.0
lrwxrwxrwx 1 khajak khajak 24 Mar 30 23:10 libCListManager.so.1.0 -> libCListManager.so.1.0.0
-rwxrwxr-x 1 khajak khajak 344109 Mar 30 22:37 libCListManager.so.1.0.0
lrwxrwxrwx 1 khajak khajak 29 Mar 30 23:10 libCommandLineEngine.so -> libCommandLineEngine.so.1.0.0
lrwxrwxrwx 1 khajak khajak 29 Mar 30 23:10 libCommandLineEngine.so.1 -> libCommandLineEngine.so.1.0.0
lrwxrwxrwx 1 khajak khajak 29 Mar 30 23:10 libCommandLineEngine.so.1.0 -> libCommandLineEngine.so.1.0.0
-rwxrwxr-x 1 khajak khajak 207537 Mar 30 18:24 libCommandLineEngine.so.1.0.0
-rw-rw-r-- 1 khajak khajak 285 Mar 30 23:15 linker.pro
Qtcreator 抛出错误:
:-1: error: cannot find -llibCListManager
:-1: error: cannot find -llibCommandLineEngine
最佳答案
引用 man ld
-l namespec --library=namespec<br>
Add the archive or object file specified by
namespec
to the list of files to link. This option may be used any number of times. Ifnamespec
is of the form:filename
,ld
will search the library path for a file calledfilename
, otherwise it will search the library path for a file calledlibnamespec.a
.
On systems which support shared libraries,ld
may also search for files other thanlibnamespec.a.
Specifically, on ELF and SunOS systems, ld will search a directory for a library calledlibnamespec.so
before searching for one calledlibnamespec.a
. (By convention, a ".so" extension indicates a shared library.) Note that this behavior does not apply to:filename
, which always specifies a file calledfilename
.
因此,-llibCListManager
意味着您要链接名为 liblibCListManager.so
的库。对于 libCListManager.so
,正确的选项是 -lCListManager
。
关于c++ - 无法在 qt creator (linux) 上链接共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22736485/