【问题标题】:MinGW32 can't configure sources: "undefined reference to `signal' and etcMinGW32 无法配置源:“未定义对‘信号’等的引用
【发布时间】: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


【解决方案1】:

我的问题在于存储此值的 LIBRARY_PATH 变量:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\lib\x64;
C:\Program Files (x86)\Windows Kits\8.1\Include\um 
C:\MinGW\msys\1.0\lib;

LD_LIBRARY_PATH vs LIBRARY_PATH

当我删除它并重新启动计算机时,所有未定义的都消失了。

【讨论】:

    猜你喜欢
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 2013-02-17
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多