如何指示 mingw64-gcc 使用 Specific mingw-w64-headers/crt
How to Instruct mingw64-gcc to use Specific mingw-w64-headers/crt
我已经按照 的描述编译了 mingw-w64-headers
和 mingw-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
来获取调试信息。
我已经按照 mingw-w64-headers
和 mingw-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
来获取调试信息。