빌드 설정 파일(CMakeLists.txt) 수정 중 궁금한 것이있습니다.

685 views
Skip to first unread message

조현성

unread,
May 2, 2016, 9:29:39 PM5/2/16
to 한국 ROS 사용자
안녕하세요. ROS 학습 중인 학생입니다.

저번수 수요일에 직접가서 강의를 듣고 다시 한 번 책을 따라서

혼자 예제들을 진행하고 있습니다.

빌드 설정파일 수정에 있어서 궁금한 것이 있습니다.

## second_pkg_msg_publisher 노드에 대한 빌드 옵션
 ## 빌드 후 생성할 실행 파일을 지정한다. 뒤의 cpp 파일을 참조하여 second_pkg_msg_publisher라는 실행파일을 생성한다.
 add_executable(second_pkg_msg_publisher src/second_pkg_msg_publisher.cpp)
 ## 패키지를 빌드하기에 앞서 생성해야 할 메시지 헤더 파일이 있으면 빌드 전에 우선으로 메시지를 생성하라는 설정이다. 
 ## 뒤의 파일을 우선으로 빌드하고 second_pkg_msg_publisher를 빌드하게 하는 설정이다.
 add_dependencies(second_pkg_msg_publisher second_pkg_generate_messages_cpp)
 ## second_pkg_msg_publisher 노드를 생성하기에 앞서 링크해야하는 라이브러리와 실행파일을 링크해주는 옵션이다.
 target_link_libraries(second_pkg_msg_publisher ${catkin_LIBRARIES})

 제 패키지 이름은 second_pkg이고, 노드 이름은 second_pkg_msg_publisher 입니다.
 빨간 부분이 궁금합니다. 노드이름은 임의로 정하는 것으로 알고 있는데
 우선 빌드 하게 되는 저 파일 이름을 적을 시 임의로 지정해주는 건지 아니면 어떤 규칙이 있는지 알고싶습니다.
 그리고 저 파일의 위치를 알고 싶습니다.

Yoonseok Pyo

unread,
May 3, 2016, 4:46:21 AM5/3/16
to 조현성, 한국 ROS 사용자
xxxxx_generate_messages_cpp 형태로 xxxxx는 
아래 add_executable 에서 설정한 실행 파일명을 적어주면 됩니다.

add_executable(second_pkg_msg_publisher ~~~~

으로 하셨으면 second_pkg_msg_publisher_generate_messages_cpp 이라고 해주시면 됩니다.

더불어, xxxx_generate_messages_cpp 은 파일이 아닌 설정이라고 보시면 됩니다.
질문이 실행 파일이시라면 지난주 강의 자료에 관련 내용이 있으니 참고하시면 됩니다.

2016년 5월 3일 오전 10:29, 조현성 <cat9...@gmail.com>님이 작성:

--
이 메일은 Google 그룹스 '한국 ROS 사용자' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 korea-ros-use...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 korea-r...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/korea-ros-users에서 이 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.



--
//------------------------------------------------------------------------------
Yoonseok Pyo, Ph.D.,
Senior Research Engineer / Open Source Team / R&D Dept.
ROBOTIS CO., LTD. (http://www.robotis.com)
#1505 Ace High End Tower NO. 3, Gasan-dong 145,
GasanDigital 1-ro, GeumCheon-gu, Seoul, Korea 153-787

Follow ROBOTIS on TwitterFacebookLinkedin, Github
Personal Website (http://www.robotpilot.net)
//------------------------------------------------------------------------------

Jihoon Lee

unread,
May 3, 2016, 5:08:16 AM5/3/16
to korea-r...@googlegroups.com
좀더 추가 설명을 드리면

add_dependencies(second_pkg_msg_publisher second_pkg_generate_messages_cpp)
는 second_pkg_msg_publisher 노드의 의존성 라이브러리를 정의해주는 겁니다.

그리고 second_pkg_generage_messages_cpp는 second_pkg 패키지내의 CMakeLists.txt에서
generate_messages를 실행했을때 생기는 메세지 라이브러리입니다.

catkin이 업그레이드 되면서 좀더 쉬운 방법이 생겼습니다.
[PKG_NAME]_generate_messages_cpp대신에  ${catkin_EXPORTED_TARGETS}를 사용하셔도 됩니다.

 add_dependencies(second_pkg_msg_publisher second_pkg_generate_messages_cpp)
->
 add_dependencies(second_pkg_msg_publisher ${catkin_EXPORTED_TARGETS})


참고 문서 :
http://docs.ros.org/indigo/api/catkin/html/howto/format2/cpp_msg_dependencies.html




On 05/03/2016 10:45 AM, Yoonseok Pyo wrote:
xxxxx_generate_messages_cpp 형태로 xxxxx는 
아래 add_executable 에서 설정한 실행 파일명을 적어주면 됩니다.

add_executable(second_pkg_msg_publisher ~~~~

으로 하셨으면 second_pkg_msg_publisher_generate_messages_cpp 이라고 해주시면 됩니다.

더불어, xxxx_generate_messages_cpp 은 파일이 아닌 설정이라고 보시면 됩니다.
질문이 실행 파일이시라면 지난주 강의 자료에 관련 내용이 있으니 참고하시면 됩니다.

2016년 5월 3일 오전 10:29, 조현성 <cat9...@gmail.com>님 이 작성:
안녕하세요. ROS 학습 중인 학생입니다.

저번수 수요일에 직접가서 강의를 듣고 다시 한 번 책을 따라서

혼자 예제들을 진행하고 있습니다.

빌드 설정파일 수정에 있어서 궁금한 것이 있습니다.

## second_pkg_msg_publisher 노드에 대한 빌드 옵션
 ## 빌드 후 생성할 실행 파일을 지정한다. 뒤의 cpp 파일을 참조하여 second_pkg_msg_publisher라는 실행파일을 생성한다.
 add_executable(second_pkg_msg_publisher src/second_pkg_msg_publisher.cpp)
 ## 패키지를 빌드하기에 앞서 생성해야 할 메시지 헤더 파일이 있으면 빌드 전에 우선으로 메시지를 생성하라는 설정이다. 
 ## 뒤의 파일을 우선으로 빌드하고 second_pkg_msg_publisher를 빌드하게 하는 설정이다.
 add_dependencies(second_pkg_msg_publisher second_pkg_generate_messages_cpp)
 ## second_pkg_msg_publisher 노드를 생성하기에 앞서 링크해야하는 라이브러리와 실행파일을 링크해주는 옵션이다.
 target_link_libraries(second_pkg_msg_publisher ${catkin_LIBRARIES})

 제 패키지 이름은 second_pkg이고, 노드 이름은 second_pkg_msg_publisher 입니다.
 빨간 부분이 궁금합니다. 노드이름은 임의로 정하는 것으로 알고 있는데
 우선 빌드 하게 되는 저 파일 이름을 적을 시 임의로 지정해주는 건지 아니면 어떤 규칙이 있는지 알고싶습니다.
 그리고 저 파일의 위치를 알고 싶습니다.

--
이 메일은 Google 그룹스 '한국 ROS 사용자' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 korea-ros-use...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 korea-r...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/korea-ros-users에 서 이 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을 (를) 방문하세요.



--
//------------------------------------------------------------------------------
Yoonseok Pyo, Ph.D.,
Senior Research Engineer / Open Source Team / R&D Dept.
ROBOTIS CO., LTD. (http://www.robotis.com)
#1505 Ace High End Tower NO. 3, Gasan-dong 145,
GasanDigital 1-ro, GeumCheon-gu, Seoul, Korea 153-787

Follow ROBOTIS on TwitterFacebookLinkedin, Github
Personal Website (http://www.robotpilot.net)
//------------------------------------------------------------------------------
--
이 메일은 Google 그룹스 '한국 ROS 사용자' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 korea-ros-use...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 korea-r...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/korea-ros-users에 서 이 그룹을 방문하세요.

Yoonseok Pyo

unread,
May 3, 2016, 5:57:49 AM5/3/16
to Jihoon Lee, 한국 ROS 사용자
+1 

역시 지훈씨!!!

I love jihoon :)

2016년 5월 3일 오후 6:08, Jihoon Lee <jihoon...@gmail.com>님이 작성:
https://groups.google.com/group/korea-ros-users에서 이 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.

조현성

unread,
May 3, 2016, 6:46:10 AM5/3/16
to 한국 ROS 사용자, cat9...@gmail.com
감사합니다!

그런데 답변을 기다리는 도중 제가  
 
 
## msg_publisher_node
 add_executable(msg_publisher_node src/msg_publisher_node.cpp)
 add_dependencies(msg_publisher_node generate_messages_cpp)
 target_link_libraries(msg_publisher_node ${catkin_LIBRARIES})

이런식으로 앞에 실행파일명을 안붙여도 실행이 되더라구요.
그래도 나중에 혹시 문제가 될지 모르니 표윤석님 말씀대로 하겠습니다. 감사합니다! 

조현성

unread,
May 3, 2016, 6:46:41 AM5/3/16
to 한국 ROS 사용자
좋은 조언 감사합니다!
Reply all
Reply to author
Forward
0 new messages