组织测试项目和主要可执行文件 - C&C++

Nav*_*K N 4 c c++ cmake

我有以下目录结构.

root
--src
---tests
Run Code Online (Sandbox Code Playgroud)

src包含应用程序的源文件和头文件(C文件).构建此应用程序时,它会生成可执行文件.tests目录包含应用程序的单元测试用例(C++文件,UnitTest++用作测试框架).

在测试项目中,我可以包含src目录中的头文件,并且编译将通过.链接时出现问题.链接器将无法在源目录中找到目标文件.

我怎么解决这个问题?在C&C++项目中,为主应用程序提供一个可执行文件,而另一个用于需要使用相同源文件的测试的常规做法是什么?

  • 应用类型:跨平台.
  • 当前的发展环境:Linux
  • 构建工具:CMake

任何帮助都会很棒!

Bil*_*eal 5

我一直为此做的是有三个项目.我有一个构建设置,它构建一个静态库,包含我的大部分代码.然后我会有一个测试项目链接到静态库和一个包含UI代码的项目,通常不进行单元测试.

因为两个项目共享相同的已编译静态库,所以不需要在项目之间重新编译文件.

  • 注意:当我说上面的"项目"时,我指的是构建系统的"项目"范围.对于将成为proj文件的Visual Studio,对于CMake,它应该是构建目标.