2013-08-04 3 views
1

Я использую панель разработки, которая имеет свои собственные библиотеки. Я установил ROS на нем, и теперь мне нужно использовать публикацию/подписку, включив ее библиотеки в CMakeLists.txt пакета. Я также должен отметить, что я использую Eclipse для компиляции, поэтому CMakeLists.txt находится в этой форме. Вот Makefile аппаратной библиотеки, которые я хочу использовать в CMakeLists.txt:Преобразование Makefile в CMakeLists.txt

DIR=$(shell pwd)/../ 

INCS = -I.\ 
     -I$(DIR) \ 
     -I$(DIR)/hardware \ 
     -I$(DIR)/hardware/environment \ 
     -I$(DIR)/hardware/environment/cores \ 
     -I$(DIR)/hardware/environment/cores/environment \ 
     -I$(DIR)/hardware/environment/variants \ 
     -I$(DIR)/hardware/environment/variants/sunxi \ 
     -I$(DIR)/libraries \ 
     -I$(DIR)/libraries/Serial \ 
     -I$(DIR)/libraries/SPI \ 
    -I$(DIR)/libraries/Wire \ 
    -I$(DIR)/libraries/LiquidCrystal \ 
    -I$(DIR)/Basibos/include LIBS=../libenvironment.a TARGET=../output/test 

OBJS = BasibosAnaProgram 

all: 
    @mkdir -p $(TARGET) 
    for i in $(OBJS); do echo "$(CXX) $(INCS) $$i.cpp -o $(TARGET)/$$i $(LIBS)"; done 
    @for i in $(OBJS); do $(CXX) $(INCS) $$i.cpp -o $(TARGET)/$$i $(LIBS); done 

clean: 
    @for i in $(OBJS); do rm -f $(TARGET)/$$i; done 

А вот пример CMakeLists.txt что Makefile должны быть включены:

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} src/Basibos.cpp) 
rosbuild_add_library(${PROJECT_NAME} src/HedefeGitme.cpp) 
rosbuild_add_library(${PROJECT_NAME} src/Konum.cpp) 
rosbuild_add_library(${PROJECT_NAME} src/Robot.cpp) 
rosbuild_add_library(${PROJECT_NAME} src/Sonar.cpp) 
rosbuild_add_library(${PROJECT_NAME} src/Zaman.cpp) 
rosbuild_add_library(${PROJECT_NAME} src/XMLAyiklayici.cpp) 

rosbuild_add_executable(srctest RobotKontrol.cpp) 

target_link_libraries(srctest ${PROJECT_NAME}) 

Я застрял и не может идти вперед без посторонней помощи. Любая помощь будет очень оценена. Заранее спасибо

ответ

1

Источник: http://www.ros.org/wiki/rosbuild/CMakeLists

Вы должны добавить исходные файлы следующим образом:

rosbuild_add_library(XmlRpc src/XmlRpcClient.cpp 
        src/XmlRpcDispatch.cpp 
        src/XmlRpcServer.cpp 
        src/XmlRpcServerConnection.cpp 
        src/XmlRpcServerMethod.cpp 
        src/XmlRpcSocket.cpp 
        src/XmlRpcSource.cpp 
        src/XmlRpcUtil.cpp 
        src/XmlRpcValue.cpp) 
Смежные вопросы