C++ 组织测试项目和主要可执行文件-C&;C++;
我有以下目录结构C++ 组织测试项目和主要可执行文件-C&;C++;,c++,c,cmake,C++,C,Cmake,我有以下目录结构 root --src ---tests src包含应用程序的源文件和头文件(C文件)。构建此应用程序时,它会生成一个可执行文件测试目录包含应用程序的单元测试用例(C++文件,使用UnitTest++作为测试框架) 在测试项目中,我可以包含src目录中的头文件,编译将通过。连接时出现问题。链接器将无法在源目录中找到对象文件 我怎样才能解决这个问题?在C&C++项目中,对于主应用程序有一个可执行文件,而另一个测试需要同一个源文件一起使用的测试,通常的做法是什么?p> 应用类型:
root
--src
---tests
src
包含应用程序的源文件和头文件(C文件)。构建此应用程序时,它会生成一个可执行文件<代码>测试目录包含应用程序的单元测试用例(C++文件,使用UnitTest++
作为测试框架)
在测试项目中,我可以包含src
目录中的头文件,编译将通过。连接时出现问题。链接器将无法在源目录中找到对象文件
我怎样才能解决这个问题?在C&C++项目中,对于主应用程序有一个可执行文件,而另一个测试需要同一个源文件一起使用的测试,通常的做法是什么?p>
- 应用类型:跨平台
- 当前开发环境:Linux
- 构建工具:CMake
任何帮助都会很好 我认为您要么需要在测试项目中编译这些文件,要么在主项目中创建一个lib,您可以将其包括在内。我一直为此做的是有三个项目。我有一个构建设置,它构建一个静态库,包含我的大部分代码。然后,我将有一个与静态库链接的测试项目和一个包含UI代码的项目,这样的项目通常不会进行单元测试 因为两个项目共享同一个已编译的静态库,所以不需要在项目之间重新编译文件
- 注意:当我在上面提到“项目”时,我指的是对于您的构建系统具有“项目”范围的任何东西。对于VisualStudio来说,这将是一个proj文件,对于CMake来说,它应该是一个构建目标