如何指示 mingw64-gcc 使用 Specific mingw-w64-headers/crt

How to Instruct mingw64-gcc to use Specific mingw-w64-headers/crt

我已经按照 的描述编译了 mingw-w64-headersmingw-w64-crt。 我的问题是如何让 gcc 使用它们。

我试过以下方法都无济于事:

SET mingw_dir=C:\msys64\mingw-w64

gcc -g -L %mingw_dir%\lib^
    -I %mingw_dir%\include^
    -Wl,--rpath=%mingw_dir%\lib^
    test.c -o test

编译失败给出:

../lib/crt2.o: 在函数 'pre_c_init' 中: crt/crtexe.c:145: 未定义对 '__p__commode'

的引用

这似乎是 ld 的问题,但我不确定如何解决它。

似乎只需设置一个环境变量 LIBRARY_PATH=C:\msys64\mingw-w64\lib;%LIBRARY_PATH% 即可解决问题。

有了这个设置,命令行调用就简化为: gcc -g test.c -o test

虽然这将使用 pacman -S $MINGW_PACKAGE_PREFIX-toolchain 安装的头文件,但这只是意味着我只需要编译 mingw-w64-crt 来获取调试信息。