cmake没有找到环境变量

2 人关注

我在Ubuntu 14.04上使用ROS Indigo工作,我需要使用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确实存在。

How could I solve this problem?

linux
bash
ubuntu
cmake
ros
Dhindhimathai
Dhindhimathai
发布于 2018-01-24
1 个回答
Florian
Florian
发布于 2018-01-24
已采纳
0 人赞同

我刚刚试了一下你的例子,它在我的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