我正在使用 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
)
引用
关于linux - cmake 找不到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48408431/