如何在CMake脚本中设置PATH环境变量?

时间:2011-09-28 14:10:35

标签: cmake

我想通过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。

3 个答案:

答案 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