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

时间:2010-06-29 00:36:18

标签: c++ c cmake

我有以下目录结构。

root
--src
---tests

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

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

我该如何解决这个问题? C& C的常规做法是什么? C ++项目有一个可执行文件用于主应用程序,另一个用于测试,两者都需要相同的源文件才能使用?

  • 申请类型:跨平台。
  • 当前开发环境:Linux
  • 构建工具:CMake

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:2)

我认为您需要使用测试项目编译这些文件,或者在主项目中创建一个可以包含的库。