cmake 找不到环境变量



我正在使用ROS Indigo开发Ubuntu 14.04,我需要使用Geometry Tools Wild Magic 5来开发软件包。

我已通过修改.bashrc将 Wild Magic 文件夹的路径导出为环境变量,如下所示:

export WM5_PATH=/home/user/catkin_ws/src/GeometricTools/WildMagic5/SDK

这样做是为了在我正在编码的包的CMakeLists.txt文件中指定头文件的位置:

include_directories(
    include
    $ENV{WM5_PATH}/Include/
)

以前,在同一个 cmake 文件中,我检查环境变量是否正确设置:

if (NOT DEFINED ENV{WM5_PATH})
    MESSAGE (FATAL_ERROR "Wild Magic Engine 5.14 missing")
endif()

现在,在使用catkin build构建包时,找不到环境变量(输入上面的 if(。但是通过在终端中使用printenv,我可以看到环境变量WM5_PATH实际上在那里。

我该如何解决这个问题?

我刚刚尝试了一下你的例子,它在我的 Ubuntu bash shell 中运行良好。

# export WM5_PATH=/home/user/catkin_ws/src/GeometricTools/WildMagic5/SDK
# cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: ...

所以我怀疑您的cmake可执行文件在另一个环境(例如 IDE(中运行。

要检查您的 CMake 将什么视为环境,您可以将以下内容添加到您的CMakeLists.txt

execute_process(
    COMMAND ${CMAKE_COMMAND} -E environment
)

参考

  • 如何在 CMake (Windows( 中检索用户环境变量

最新更新