我想使用未在系统PATH中的Mingw编译器构建我的源代码。 我尝试了在脚本开头添加以下内容:
set(Env{PATH} "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
还有这个:
set(CMAKE_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
set(CMAKE_LIBRARY_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
set(CMAKE_SYSTEM_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
set(CMAKE_SYSTEM_PREFIX_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
第一种方案根本不起作用。建议我无法在CMake脚本中覆盖环境变量的值。 第二个脚本找到了我的mingw编译器,但是在运行gcc时会出现错误(找不到gcc所需的libgmp-10.dll)。这是因为PATH变量没有设置为我的Mingw。
/path/to/mingw
添加到ENV{PATH}
可以正常工作:set(ENV{PATH} "/path/to/mingw;$ENV{PATH}")
。然而,在后续的 Ninja 调用中编译器无法运行 :( - genpfault