如何告诉CMake链接源目录中的静态库?

大卫·Z

我有一个带有Makefile的小项目,我试图将其转换为CMake,主要是为了获得CMake的经验。就本示例而言,项目包含一个源文件(C ++,尽管我认为该语言不是特别重要)和一个静态库文件(已从其他地方复制)。出于争论的考虑,假设该库的源代码不可用;我只有.a文件和相应的标头。

我手工制作的Makefile包含以下构建规则:

main: main.o libbingitup.a
    g++ -o main main.o libbingitup.a

效果很好。我如何告诉CMake重现此内容?当然,从字面上看,并不是确切的makefile,而是包含等效链接命令的文件。我尝试了一些明显但天真的方法,例如

add_executable(main main.cpp libbingitup.a)

要么

add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)

以及带有link_directories(.)add_library(bingitup STATIC IMPORTED)等的各种事物,但到目前为止,没有任何事情能够成功实现链接。我该怎么办?


版本详细信息:具有GCC 4.6.3的Linux(Kubuntu 12.04)上的CMake 2.8.7

弗雷泽

CMake赞成将完整路径传递给链接库,因此假设libbingitup.a在中${CMAKE_SOURCE_DIR},则执行以下操作应该成功:

add_executable(main main.cpp)
target_link_libraries(main ${CMAKE_SOURCE_DIR}/libbingitup.a)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章