문제를 신속하게 설정하겠습니다. 나는 부스트에 의존하는 라이브러리 "serial"을 가지고 있으며 cmake에서 설정되어 있고 두 번째 라이브러리 "xbow_400"이 도움이되도록 설치된 Findserial.cmake를 가지고 있습니다.정의되지 않은 기호 : "boost :: system :: generic_category()"Cmake and boost setup
Undefined symbols:
"boost::system::generic_category()", referenced from:
__static_initialization_and_destruction_0(int, int)in test_xbow_400.o
__static_initialization_and_destruction_0(int, int)in test_xbow_400.o
__static_initialization_and_destruction_0(int, int)in libxbow_400.a(xbow_400.o)
__static_initialization_and_destruction_0(int, int)in libxbow_400.a(xbow_400.o)
__static_initialization_and_destruction_0(int, int)in libserial.a(serial.o)
__static_initialization_and_destruction_0(int, int)in libserial.a(serial.o)
"boost::system::system_category()", referenced from:
boost::asio::error::get_system_category() in test_xbow_400.o
__static_initialization_and_destruction_0(int, int)in test_xbow_400.o
boost::asio::error::get_system_category() in libxbow_400.a(xbow_400.o)
__static_initialization_and_destruction_0(int, int)in libxbow_400.a(xbow_400.o)
boost::asio::error::get_system_category() in libserial.a(serial.o)
boost::system::error_code::error_code()in libserial.a(serial.o)
__static_initialization_and_destruction_0(int, int)in libserial.a(serial.o)
ld: symbol(s) not found
지금, 나는 내 CMakeLists에이 라인을 추가하여이 문제를 해결할 수 있습니다 : 나는이 연결 오류가 발생하는 시점에서 "xbow_400"에 연결 "test_xbow_400"를 컴파일 할 때까지 모든 괜찮습니다. TXT는 "xbow_400"에 대한 파일 :
+ # Find Boost
+ find_package(Boost COMPONENTS system filesystem thread REQUIRED)
+
+ link_directories(${Boost_LIBRARY_DIRS})
+ include_directories(${Boost_INCLUDE_DIRS})
# Compile the xbow_400 Library
add_library(xbow_400 src/xbow_400.cpp include/xbow_400.h)
- target_link_libraries(xbow_400 ${serial_LIBRARIES})
+ target_link_libraries(xbow_400 ${serial_LIBRARIES} ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY})
을하지만, 내가 특별히 그것을 향상 및 링크를 찾을 필요하지 않고 xbow_400 사용 시리얼을 가지고 싶습니다. (xbow_400 코드는 직렬 라이브러리를 통해서만 직접 부스트를 포함하거나 사용하지 않습니다.)
이것이 가능합니까? 그렇다면 필자는 Findserial.cmake에 추가해야합니까, 아니면 제가 시리얼을 만드는 방식을 바꿔야합니까?
시리얼 라이브러리 : https://github.com/wjwwood/serial xbow_400 : 나는 OS X 10.6.6 오전 https://github.com/wjwwood/Crossbow-IMU400CC-100
. 나는 Linux 나 Windows에서 아직 이것을 시도하지 않았다.