“。cpp”文件在项目包含路径中不会被项目看到

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“。cpp”文件在项目包含路径中不会被项目看到相关的知识,希望对你有一定的参考价值。

说我有一个简单的项目Test。这是CMakeLists.txt:

project(Test)

set(CMAKE_CXX_STANDARD 11)

include_directories(path/to/somewhere)

add_executable(Test main.cpp)

现在,在包含目录中,我有A.hA.cpp。每当我编译时,总是得到对A.h中声明的函数的定义的未定义引用。很明显,该项目根本没有看到A.cpp

请让我知道如何使它工作?考虑到我宁愿不执行add_executable(Test main.cpp A.cpp),因为我认为A应该是单独的事情,而不是直接集成到可执行文件中。我唯一的选择是将A构建为.so吗?我可以以某种方式修改cmake来构建库吗?

答案

项目包含路径中的文件“ .cpp”文件不会被项目看到

您的问题与项目“所见”无关。问题是您无法与翻译单元链接。

我唯一的选择是将A放入a.so吗?

不,您不需要建立共享库。您可以改为使用静态或“对象”库。

或者您可以在add_executable指令中列出源文件。

以上是关于“。cpp”文件在项目包含路径中不会被项目看到的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使对于私有链接也会继承包含路径

当作为 GLUT 项目的一部分包含时,函数不会读取文件

CMake 包含路径

Visual Studio 自定义包含路径在链接时导致符号错误

为“路径不可知”包含设置生成文件

sonar-maven-plugin:如何在包含模式中使用项目相对路径?