G++ 没有规则使目标。。。图书馆
当我尝试编译我的应用程序时,出现以下错误:G++ 没有规则使目标。。。图书馆,g++,makefile,G++,Makefile,当我尝试编译我的应用程序时,出现以下错误: *** No rule to make target `/mypath/lib/libm.a', needed by `/myPath/bin/appName' 为什么链接器要根据一条绝对路径来寻找libm.a?我开始考虑将编程转换为通灵职业 为什么链接器根据绝对路径查找libm.a 因为你让他这么做的。很可能你打过字 # There were some rules that build your own .a libs myLib.a: ...
*** No rule to make target `/mypath/lib/libm.a', needed by `/myPath/bin/appName'
为什么链接器要根据一条绝对路径来寻找libm.a?我开始考虑将编程转换为通灵职业 为什么链接器根据绝对路径查找libm.a 因为你让他这么做的。很可能你打过字
# There were some rules that build your own .a libs
myLib.a: ...
...
# Handy rule to direct your libs into lib/ folder!
vpath %.a /mypath/lib
appName: appName.o libm.a
g++ $^ -o $@
哎呀!您需要“system”libm.a
(这是一个数学库,glibc的一部分),但make
认为您需要自己的静态库。然后它添加正确的前缀,并且找不到任何要重新生成的规则libm.a
解决方案可以是将libm.A从先决条件中移出。这就是配置脚本或特殊的make sanity
目标来检查系统库是否存在的目的
EXT_LIBS=libm.a
appName: appName.o
g++ $^ $(EXT_LIBS) -o $@
你需要发布你的makefile来找出问题所在。呵呵,我打赌他不需要,但他肯定会很好:)那么,内森,有什么评论吗?不起作用的代码示例?有什么问题吗?错误消息来自make,而不是链接器,所以这个答案很可能是正确的。