在msys2环境下使用cmake编译32位的开源库时,执行cmake或make时报错,cmake是独立安装的,经过仔细排查(打印命令执行时的调试信息),发现cmake错误的使用的64位的gcc版本。
这个问题可以通过显式指定cmake使用的gcc和g++程序解决,执行命令如下:
cmake \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_CXX_FLAGS="-m32" \
-DCMAKE_C_FLAGS="-m32" \
-G "MSYS Makefiles" \
-D CMAKE_C_COMPILER="E:/msys64/mingw32/bin/gcc.exe" \
-D CMAKE_CXX_COMPILER="E:/msys64/mingw32/bin/g++.exe"
指定 CMAKE_C_COMPILER 和 CMAKE_CXX_COMPILER 为mingw32目录下的gcc和g++,即可解决该问题。