当我尝试编译一个程序将库与gcc链接起来时(在最近的13.1.0版本中),使用如下命令:g++ -I/path/to/header -L/path/to/library -llibrary file.cpp输出告诉我'cannot find -library:没有这样的文件或目录'我已经删除并重新安装了gcc,并尝试更改调用顺序,结果相同
g++ -I/path/to/header -L/path/to/library -llibrary file.cpp
dl5txlt91#
这听起来像是假设cannot find -llibrary表示GCC将-llibrary解释为输入文件的名称,而不是一个-l选项,其值为library。但实际上,这只是GCC说“我无法将library匹配到库”的奇怪方式。毕竟,它检查了许多不同名称的文件(例如,liblibrary.a,还有library.a),所以它无法知道它应该找到这些文件名中的哪一个。有关GCC可能无法找到库的各种原因,请参阅this question。
cannot find -llibrary
-llibrary
-l
library
liblibrary.a
library.a
1条答案
按热度按时间dl5txlt91#
这听起来像是假设
cannot find -llibrary
表示GCC将-llibrary
解释为输入文件的名称,而不是一个-l
选项,其值为library
。但实际上,这只是GCC说“我无法将
library
匹配到库”的奇怪方式。毕竟,它检查了许多不同名称的文件(例如,liblibrary.a
,还有library.a
),所以它无法知道它应该找到这些文件名中的哪一个。有关GCC可能无法找到库的各种原因,请参阅this question。