【发布时间】:2011-06-01 16:30:11
【问题描述】:
我正在尝试创建调用一个批处理文件,该文件在构建之前设置了一堆环境变量。
批处理文件看起来像这样(它预先自动生成以检测 ATI Stream SDK 或 NVidia CUDA 工具包):
set OCL_LIBS_X86="%ATISTREAMSDKROOT%libs\x86"
set OCL_LIBS_X64="%ATISTREAMSDKROOT%libs\x86_64"
set OCL_INCLUDE="%ATISTREAMSDKROOT%include"
但是,构建的其余部分似乎无法访问这些变量,所以当我尝试在 C/C++>General>Additional include 目录中引用 $(OCL_INCLUDE) 时,它首先会警告我未找到环境变量 $(OCL_INCLUDE),当我尝试包含 CL/cl.hpp 时,编译将失败:
致命错误 C1083:无法打开包含文件:'CL/cl.hpp':没有这样的文件或目录
我知道如果我想从 Visual Studio GUI 访问这些变量,我可以将它们放入注册表,但我真的不想这样做。有没有办法让这些环境变量在预构建事件之后保持不变?我无法直接引用 $(ATISTREAMSDKROOT),因为该项目必须能够为 ATI Stream 和 NVidia Cuda 构建。
【问题讨论】:
标签: visual-studio-2008 visual-c++ msbuild build-process build-automation