1

私は多くのクラス (cpp とヘッダー ファイルを含む) と int main を持つ 1 つの実行可能な cpp を持つプロジェクトを行っています。ROSでは、これらをCMakeLists.txtとランタイムにリンクしようとしています。毎回txtを変更せずにコンパイルする予定です。ここに私のCMakeLists.txtがあります:

cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
rosbuild_init()
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

rosbuild_add_library(${PROJECT_NAME} Im_Basibos.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_HedefeGitme.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_Konum.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_Robot.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_Sonar.cpp)

rosbuild_add_executable(srctest Im_RobotKontrol.cpp)

ヘッダー ファイルをリンクする方法がわかりません。これらをリンクする必要があります。

Im_Basibos.h, Im_Basibos.cpp
Im_HedefeGitme.h, Im_HedefeGitme.cpp
Im_Konum.h, Im_Konum.cpp
Im_Robot.h, Im_Robot.cpp
Im_Sonar.h, Im_Sonar.cpp

and

Im_Robot.cpp that has int main()

どんな答えでも大歓迎です。もうありがとう..

4

2 に答える 2

0

メソッドを提供してくれた Guillaume に感謝します。私は ROS 環境で作業しているので、このトリックを実行した正確なコマンドは次のとおりです。

rosbuild_add_library(${PROJECT_NAME} Im_Basibos.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_HedefeGitme.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_Konum.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_Robot.cpp)
rosbuild_add_library(${PROJECT_NAME} Im_Sonar.cpp)

rosbuild_add_executable(srctest Im_RobotKontrol.cpp)

target_link_libraries(srctest ${PROJECT_NAME}) 
于 2013-07-06T20:28:02.090 に答える