【发布时间】:2018-03-13 10:49:35
【问题描述】:
我尝试为项目编写一些测试。如果我需要一些项目文件,我会写include_directories 语句,所有的都将包含在内。如果需要一些手动编译的静态库,我尝试设置target_link_libraries。
如果我设置了绝对路径,那么所有链接都可以,但是对于任务我需要另一种方式来链接另一个库,因为库的相对路径给出了未定义的引用。
在这种情况下一切正常:
target_link_libraries(ConsoleDumperTest GTest::GTest GTest::Main PocoFoundation PocoUtil PocoNet ${YAML_LIBRARIES})
target_link_libraries(ConsoleDumperTest /home/yrusinov/projects/build-fleetd-2-Desktop-dbg/protocols/libprotocols.a)
target_link_libraries(ConsoleDumperTest /home/yrusinov/projects/build-fleetd-2-Desktop-dbg/consumers/libconsumers.a)
target_link_libraries(ConsoleDumperTest /home/yrusinov/projects/build-fleetd-2-Desktop-dbg/consumers/Console/libconsole.a)
但如果我这样做:
target_link_libraries(ConsoleDumperTest GTest::GTest GTest::Main PocoFoundation PocoUtil PocoNet ${YAML_LIBRARIES})
target_link_libraries(ConsoleDumperTest ../../../protocols/libprotocols.a)
target_link_libraries(ConsoleDumperTest ../../../consumers/libconsumers.a)
target_link_libraries(ConsoleDumperTest ../../../consumers/Console/libconsole.a)
尽管目录中包含库,但我收到未定义的引用。我必须通过哪种方式设置链接库的路径?
【问题讨论】: