【发布时间】:2021-12-22 06:09:12
【问题描述】:
去年我在 MinGW 上构建了一些源,没有任何问题。现在,当我尝试使用我得到的另一个参数重新配置这些源时(config.log 中 libjansson-2.10 的 ./configure 输出的一部分):
configure:3318: checking whether the C compiler works
configure:3340: gcc conftest.c >&5
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../crt2.o:(.text+0x34):
undefined reference to `signal'
...
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../crt2.o:(.text+0x89):
undefined reference to `_imp___iob'
...
和其他未定义的引用。但是,如果我制作这个旧配置的来源,它们就会成功地重新组合。
我卸载了旧的 MinGW 并下载了一个新的,检查了所有与 dll、bin 和 dev 相关的复选框,但使用不同的来源仍然会出现相同的错误。我更改了 PATH 以删除除 C:\MinGW\bin;C:\MinGW\msys\1.0\bin; 等之外的所有链接,但都一样。这是 PATH 或 pkg-config 还是其他问题?
更新: 当我编译 Hello world 时,我得到了同样的错误。
g++ -Wall -o2 -s -nodefaultlibs Hello.cpp -o Hello.exe
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe:
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../crt2.o:(.text+0x97): undefined reference to `signal'
【问题讨论】:
-
为什么有
-nodefaultlibs链接器标志?这可能就是signal()未定义的原因。 -
不,-nodefaultlibs 减少了错误的数量。
标签: gcc windows-7 mingw configure undefined-reference