【问题标题】:Cmake cannot find environment variableCmake找不到环境变量
【发布时间】:2013-04-17 13:07:53
【问题描述】:

我正在 Windows 7 上使用 cmake 构建 OpenHEVC (https://github.com/OpenHEVC/openHEVC) 到 VS2010 项目。

在根目录下的 CMakeLists.txt 中,我找到了这一行:

include_directories(. ${SDL_INCLUDE_DIR} wrapper_hm/src/Lib)

我认为“${SDL_INCLUDE_DIR}”应该是 SDL 库(http://www.libsdl.org/download-1.2.php)。

我的问题是,在下载 SDL 库并设置一个名为“SDL_INCLUDE_DIR”的新环境变量后,该变量包含 SDL 的路径(我可以在命令行中“回显 %SDL_INCLUDE_DIR%”)。 CMake 只是不断给我这个(即使在重新启动 Cmake 之后):

''' CMake 错误:此项目中使用了以下变量,但它们设置为 NOTFOUND。 请设置它们或确保它们在 CMake 文件中正确设置和测试: SDL_INCLUDE_DIR 用作目录 C:/Users/Administrator/Desktop/Pure265/openHEVC-master/openHEVC-master 中的包含目录 用作目录 C:/Users/Administrator/Desktop/Pure265/openHEVC-master/openHEVC-master/wrapper_hm 中的包含目录

配置不完整,出现错误! '''

我很困惑为什么 cmake 找不到环境变量。 ( 我是 Cmake 的新手,但我在这里检查过:http://www.cmake.org/Wiki/CMake_Useful_Variables ${SDL_INCLUDE_DIR} 应该反映到环境变量中。 )

【问题讨论】:

    标签: cmake hevc


    【解决方案1】:

    ${SDL_INCLUDE_DIR} 不是环境变量。它只是一个可能在 FindSDL.cmake 脚本中设置的 CMake 变量。你可以看到,因为环境变量有 $ENV{variable_name} sintax。

    您应该安装 SDL 库的开发版本。如果您查看 FindSDL.cmake 脚本,您将看到脚本在哪里搜索头文件和 lib 文件。据我所知,您必须将 SDLDIR 环境变量设置为指向 SDL 库的根文件夹。

    【讨论】:

    • 是的,它在添加 SDLDIR env var 后工作。但是你能告诉我 FindSDL.cmake 是哪个脚本吗?
    • 查找脚本位于已安装 cmake 的 Modules 子目录中。
    • 找到它。因此,Cmake 提供了内置脚本供人们轻松地将流行的库添加到 CMake 项目包中。感谢您的帮助 Domen。
    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 2016-10-06
    • 1970-01-01
    • 2016-07-11
    • 2015-11-08
    • 1970-01-01
    相关资源
    最近更新 更多