在功能包下的include/功能包名 目录下新建hello1.h头文件
#ifndef _HELLO_H
#define _HELLO_H
namespace hello_ns{
class HelloPub{
public:
void run();
};
}
#endif
需要加入自己编写的头文件路径
"/media/d102/EPAN/Desktop/code_study_ubuntu/rosdemo_05/src/head_test/include/**"
#include"ros/ros.h"
#include"head_test/hello1.h"
namespace hello_ns{
void HelloPub::run(){
ROS_INFO("hello1.h头文件");
}
}
int main(int argc, char *argv[]){
setlocale(LC_ALL,"");
ros::init(argc,argv,"hello1");
hello_ns::HelloPub helloPub;
helloPub.run();
return 0;
}
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_executable(hello1 src/hello1.cpp)
add_dependencies(hello1 ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(hello1
${catkin_LIBRARIES}
)
#ifndef _HELLO_H
#define _HELLO_H
namespace hello_ns1{
class HelloPub1{
public:
void run1();
};
}
#endif
需要加入自己编写的头文件路径
"/media/d102/EPAN/Desktop/code_study_ubuntu/rosdemo_05/src/head_test/include/**"
#include"ros/ros.h"
#include"head_test/hello2.h"
namespace hello_ns1{
void HelloPub1::run1(){
ROS_INFO("hello2.h");
}
}
#include"ros/ros.h"
#include"head_test/hello2.h"
int main(int argc,char *argv[]){
ros::init(argc,argv,"hello2_use");
hello_ns1::HelloPub1 my;
my.run1();
return 0;
}
include_directories(
include
${catkin_INCLUDE_DIRS}
)
## Declare a C++ library
add_library(hello2 #hello2:名字随意,不作要求
include/head_test/hello2.h #头文件目录
src/hello2.cpp #源文件目录
)
#此处hello2对应上面的hello2,注意此处add_dependencise的位置
## Declare a C++ executable
## With catkin_make all packages are built within a single CMake context
## The recommended prefix ensures that target names across packages don't collide
add_dependencies(hello2 ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
#此处hello2对应上面的hello2
target_link_libraries(hello2
${catkin_LIBRARIES}
)
add_executable(hello2_use src/hello2_use.cpp)
#注意此处add_denpendencies的位置
## Add cmake target dependencies of the executable
## same as for the library above
add_dependencies(hello2_use ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(hello2_use
hello2
${catkin_LIBRARIES}
)
#! /usr/bin/env python
num = 1000
import os
import sys
import rospy
'''
在Python中,一个文件引用另一个文件中的变量,
只需保证二者在同一个文件夹下即可,Python会默
认从当前文件夹搜索相关文件,但是,在ROS中,他
会先搜索根目录下的文件,所以,为了顺利运行程序,
需加入相应的搜索路径和优先级
'''
path = os.path.abspath(".")#获取该项目的绝对路径
sys.path.insert(0,path+"/src/head_test/scripts")#加入文件搜索路径,0的优先级最高
import tools
if __name__ == "__main__":
rospy.init_node("head_p")
rospy.loginfo("path:%s",path)
rospy.loginfo("num=%d",tools.num)
catkin_install_python(PROGRAMS
scripts/main.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)