我目前正在将我的一个项目改为cmake。在项目目录中,我有一个文件夹,其中包含一个名为" boclib" 的外部库,它由常规makefile构建。我需要将我的可执行文件链接到" ProjectDir" /boclib/bin/libboc.a 。我目前的尝试看起来像这样:
FIND_LIBRARY(BOCLIB boc ${PROJECT_BINARY_DIR}/boclib/bin)
Message(${BOCLIB})
TARGET_LINK_LIBRARIES(prod ${BOCLIB})
Meassage输出产生正确的库:
"AbsulutePathToProjectDir"/boclib/bin/libboc.a
链接时输出的是
g++ -lm -ldl CMakeFiles/prod.dir/src/BocData.cpp.o CMakeFiles/prod.dir/src/delay.cpp.o CMakeFiles/prod.dir/src/leoni.cpp.o CMakeFiles/prod.dir/src/main.cpp.o CMakeFiles/prod.dir/src/scope.cpp.o CMakeFiles/prod.dir/src/SerialCom.cpp.o CMakeFiles/prod.dir/src/tester.cpp.o CMakeFiles/prod.dir/src/Utils.cpp.o -o prod boclib/bin/libboc.a -lboost_program_options -lboost_system -lboost_filesystem -lboost_serialization -lboc
boclib没有-L选项。 我做错了什么?
任何帮助将不胜感激。
答案 0 :(得分:1)
似乎你粘贴的g ++命令中出现了两个“boc”库,第一个:boclib/bin/libboc.a
应该来自你的target_link_libraries调用,第二个:-lboc
必须来自某个东西你的CMakeLists.txt中的其他内容。
你不需要第二个,如果你发现为什么它被添加并删除它,它应该没问题。