gpt4 book ai didi

g++ - 没有规则可以创建目标... libm.a

转载 作者:行者123 更新时间:2023-12-02 12:09:46 32 4
gpt4 key购买 nike

当我尝试编译我的应用程序时,出现以下错误:

*** No rule to make target `/mypath/lib/libm.a', needed by `/myPath/bin/appName'

为什么链接器要根据绝对路径寻找libm.a?

最佳答案

我开始考虑将编程转向通灵职业......

Why is the linker looking for libm.a according to an absolute path?

因为你告诉他这样做。您很可能已经输入了

# 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 $@

关于g++ - 没有规则可以创建目标... libm.a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703624/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com