ROS中的头文件与源文件
-
头文件
在功能包下的 include/功能包名 目录下新建头文件: hello.h,示例内容如下:
#ifndef _HELLO_H #define _HELLO_H namespace hello_ns{ class HelloPub { public: void run(); }; } #endif
于c_cpp_properties.json文件中配置头文件
-
可执行文件
在 src 目录下新建文件:hello.cpp,示例内容如下:#include "ros/ros.h" #include "test_head/hello.h" namespace hello_ns { void HelloPub::run(){ ROS_INFO("自定义头文件的使用...."); } } int main(int argc, char *argv[]) { setlocale(LC_ALL,""); ros::init(argc,argv,"test_head_node"); hello_ns::HelloPub helloPub; helloPub.run(); return 0; }
-
CMakeLists.txt
需要额外配置,去掉注释即可
include_directories( include ${catkin_INCLUDE_DIRS} )
hello.cpp与main.cpp分开实现
在CMakeLists.txt中配置
add_library(hello
include/test_head_src/hello.h
src/hello.cpp
)
# hello 是为库映射的名字
add_dependencies(hello ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(hello
${catkin_LIBRARIES}
)
add_executable(main src/main.cpp)
add_dependencies(main ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(main
hello
${catkin_LIBRARIES}
)
python
import os
import sys
path = os.path.abspath(".")
# 核心
sys.path.insert(0,path + "/src/plumbing_pub_sub/scripts")
import tools
使用scripts/tools.py模块时,在文件中需要加入的如上
配置与普通python配置没有区别