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

Ale*_*sei 8 cmake

我想通过Mingw编译器构建我的源代码,而不是放在我的系统PATH上.我在脚本的开头尝试了这个:

set(Env{PATH} "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
Run Code Online (Sandbox Code Playgroud)

还有这个:

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/")
Run Code Online (Sandbox Code Playgroud)

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

Din*_*hen 17

CMAKE_SYSTEM_PROGRAM_PATH不打算修改,使用

LIST(APPEND CMAKE_PROGRAM_PATH  "c:/MyProject/Tools/mingw/bin/" ...)
Run Code Online (Sandbox Code Playgroud)

  • 看起来这并没有操作`PATH`环境变量!如果您使用依赖于给定路径中的 DLL 文件的程序调用自定义命令,则找不到 DLL 文件。 (4认同)

Nas*_*zta -5

编写脚本文件来启动 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"
Run Code Online (Sandbox Code Playgroud)

在 Linux 上创建一个 bash 脚本:

export PATH=$PATH:/your/path
Run Code Online (Sandbox Code Playgroud)

  • 您可以在脚本中使用 setlocal 在批处理文件退出时自动撤消对路径的更改(如果需要)。还有环境变量“ProgramFiles(x86)”和“ProgramFiles”应该使用,而不是硬编码“C:\Program Files” (3认同)