C++获取当前工作空间下某文件的路径

使用Cmake编译

在CmakeLists.txt中定义预处理宏

1
add_definitions(-DCMAKE_CURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")

在源文件中:

1
#define YOUR_FILE_PATH CMAKE_CURRENT_SOURCE_DIR "/xxx/YOUR_FILE_NAME.xxx"

使用ROS环境

直接在源文件中写:

1
2
std::string package_path = ros::package::getPath("YOUR_PACKAGE_NAME");
std::string file_path = package_path + "/xxx/YOUR_FILE_NAME.xxx";