我想通过Mingw编译器构建我的源代码,而不是放在我的系统PATH上。 我在剧本的开头尝试了这个:
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。
答案 0 :(得分:16)
不打算修改CMAKE_SYSTEM_PROGRAM_PATH,使用
LIST(APPEND CMAKE_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" ...)
答案 1 :(得分:2)
您可能会将其视为交叉编译工具链,即使您没有像在此示例中那样从Linux交叉编译到Windows:
http://www.vtk.org/Wiki/CmakeMingw
按照该指南后,在调用cmake时在命令行设置mingw工具链:
~/src/helloworld/ $ mkdir build
~/src/helloworld/ $ cd build
~/src/helloworld/build/ $ cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake
然后,如果你使用了很多这个,你可以创建一个别名来限制每次你想要重新生成makefile时丑陋-D的输入:
alias mingw-cmake='cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake'
答案 2 :(得分:1)
编写脚本文件以启动CMake。
在Windows上创建批处理文件:
@echo off
set path=c:\MyProject\Tools\mingw\bin;c:\MyProject\Tools\mingw\msys\1.0\bin
"C:\Program Files\CMake 2.8\bin\cmake-gui.exe"
在Linux上制作一个bash脚本:
export PATH=$PATH:/your/path