我创建了一个ROS包,并在CMakeLists.txt中添加了相关的行来创建一个可执行文件。
add_executable(exe_name src/file.cpp)
target_link_libraries(exe_name $LIBRARIES)当我在工作区根目录中运行catkin_make时,可执行文件是在WORKSPACE/build/PACKAGE_NAME/中生成的,而不是在
WORKSPACE/devel/lib/PACKAGE_NAME/现在的问题是,当我运行rosrun PACKAGE_NAME exe_name时,没有找到可执行名称(exe_name)。知道为什么会发生这种事吗?
编辑-添加了完整的CMakeLists.txt
cmake_minimum_required(VERSION 2.8.3)
project(flea3ros)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
sensor_msgs
cv_bridge
image_transport
)
find_package(OpenCV 2)
include_directories(
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
/usr/include/flycapture
)
add_executable(flea3syncros src/asyncRos.cpp)
add_executable(flea3ros src/GigEGrabEx.cpp)
add_executable(flea3config src/GigEConfig.cpp)
add_executable(saveImages src/save_images.cpp)
target_link_libraries(flea3ros ${catkin_LIBRARIES} ${OpenCV_LIBS} flycapture)
target_link_libraries(flea3syncros ${catkin_LIBRARIES} ${OpenCV_LIBS} flycapture)
target_link_libraries(flea3config ${catkin_LIBRARIES} ${OpenCV_LIBS} flycapture)
target_link_libraries(saveImages ${catkin_LIBRARIES} ${OpenCV_LIBS})发布于 2014-12-02 10:34:32
catkin_package宏在您的CMakeLists.txt中缺失。在find_package部分之后添加以下内容:
###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## INCLUDE_DIRS: uncomment this if you package contains header files
## LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES compute_cdist
# CATKIN_DEPENDS roscpp visualization_msgs robot_model_helper compute_cdist
# DEPENDS assimp Eigen mlpack
)(您可以删除注释,当然,我只是复制了整个块,以便包含描述)
https://stackoverflow.com/questions/27146091
复制相似问题