如何在CMake脚本中设置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/")

第一个变体根本不起作用。A建议我不能覆盖CMake脚本中环境变量的值。第二个脚本找到我的mingw编译器,但在运行gcc时捕获错误(找不到gcc需要的libgmp-10.dll)。这是因为PATH变量没有设置为我的目录

CMAKE_SYSTEM_PROGRAM_PATH不可修改,请使用

LIST(APPEND CMAKE_PROGRAM_PATH  "c:/MyProject/Tools/mingw/bin/" ...)

您可以把它当作一个交叉编译工具链来处理,即使您没有像下面这个例子那样从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

那么如果你经常使用这个你可以创建一个别名来限制每次你想要重新生成makefiles时输入丑陋的-D:

alias mingw-cmake='cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake'

编写脚本文件启动CMake

在Windows上创建批处理文件:

@echo off
set path=c:MyProjectToolsmingwbin;c:MyProjectToolsmingwmsys1.0bin
"C:Program FilesCMake 2.8bincmake-gui.exe"

在Linux上创建bash脚本

export PATH=$PATH:/your/path

最新更新