【问题标题】:How to link 2 files in Cmake?如何在 Cmake 中链接 2 个文件?
【发布时间】:2019-06-25 14:57:05
【问题描述】:

我在互联网上对此进行了研究,但我要么不明白答案,要么之前的问题没有解决我的问题。

我有 3 个文件 A、B、C,其中 C 是可执行文件,A、B 只是我自己编写的一些库代码。 B 取决于 A。C 取决于 B 和 A。如何在 Cmake 中正确链接它们?我试过这个:

add_library(A A.c)
add_library(B B.c)
add_executable(C C.c)
target_link_libraries(B A)
target_link_libraries(C B A)

尽管我仍然收到“未定义对 xxx 的引用”错误。我真的不知道我做错了什么。

【问题讨论】:

  • 如果不查看代码和具体错误,就无法说出可能是什么问题。
  • @SeanBurton 不幸的是,我无法显示代码,但错误就像我说的一样:在文件 B 中,它调用了文件 A 中定义的函数,我收到错误“未定义的引用构建时来自文件 B 的“xxx”。
  • 问题似乎不是 CMake 的问题,因为当我将所有 3 个文件编译为目标文件并与 gcc 链接时,我仍然得到相同的错误。 ._.

标签: cmake


【解决方案1】:

我找到了罪魁祸首。我不小心在我的源文件中写了一个包含保护。所以我的所有函数都被预处理器删除了。删除守卫后,它又可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2018-10-02
    • 1970-01-01
    相关资源
    最近更新 更多