我正在使用ROS,我有一个由静态库foo.a
和带有头的路径组成的外部库。现在我的CmakeLists.txt看起来像这样:
...
include_directories(/home/foo/include/)
find_library(LIB_TO_Include foo /home/foo/lib/static) //here is the foo.a
cs_add_library(${PROJECT_NAME} src/bar.cc)
catkin_add_gtest(test_bar test/test_bar.cc
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}})
target_link_libraries(test_bar ${LIBRARY_NAME} ${LIB_TO_Include})
...
所以测试有效。但是,当我将这个包包含到另一个包中时,我得到以下错误:
bar.o undefined referenes to functions of foo
所以我的包没有任何可执行文件,我可以链接到我的外部库,所以我该如何集成它?如何正确链接外部库?
库中的一个对象模块(文件)具有外部引用并使用来自另一个库的函数或对象。在使用库构建应用程序时,需要指定引用的其他外部库。这样的外部第三方库可能不止一个。
你可以在这里找到如何添加外部库到一个