【问题标题】:Compiling a single file without an IDE, c++在没有IDE的情况下编译单个文件,c ++
【发布时间】:2013-01-20 14:18:31
【问题描述】:

我正在为 C++ 开发一个单元测试器,主要是为了练习,但我被卡住了。

我希望它的工作方式如下:

  1. 它从定义的测试文件夹及其子文件夹中的所有 .hpp 文件中读取所有类和函数名称。这些断言链接到一个记录器,该记录器输出带有测试结果的 HTML 文件。
  2. 它会创建一个 .hpp 或 .cpp 文件,该文件会为每个测试类创建一个实例并运行其中的每个函数。
  3. 它编译在步骤 2 中创建的 .hpp/.cpp 文件。
  4. 它运行第 3 步的输出。

我有 1. 和 2. 失败,但我无法编译我创建的 .hpp 文件。我最初想使用对 cl.exe 的简单调用来进行编译,但事实证明这比我最初预期的问题更多。

你们中有人知道编译单个文件的好方法/简单方法吗? 我已经对 make/nmake 进行了一些研究,但我不知道如何使用它们来完成这项工作。

另外,如果这种进行单元测试的方法完全愚蠢,请告诉我。

一些信息: 我正在使用 Windows 7 64 位和 Visual Studio 2010

【问题讨论】:

  • 您需要告诉我们您面临的问题 - that is proving to be more problematic than I originally anticipated. 信息不足。
  • 嗯,我需要多考虑一下。我意识到我的问题相当模糊。感谢您的评论。 -弗雷迪

标签: c++ visual-studio-2010 unit-testing compilation


【解决方案1】:

假设生成的something.cpp 文件包含#include "something.hpp",那么它应该只是cl something.cpp 的情况,你会得到一个something.exe,你可以以某种合适的方式运行它。

“调用对象上的每个函数”似乎有点奇怪——你怎么知道结果是否正确?如果我们有一个复杂的对象,它可能需要的不仅仅是创建来支持调用所有函数。您将哪些参数传递给每个函数?你怎么知道它应该返回什么?

【讨论】:

  • 由于我只是为了练习而这样做,我假设所有函数都是无效的并且不带参数。本练习的主要目标是熟悉 Windows 文件系统(创建目录、生成文件、调用编译器等),特别是学习如何使用 boost::filesystem。我只生成了一个头文件,它#included了所有的.hpp文件(来自测试类)。它基本上只是应该是一个主文件,这就是我最初制作一个名为 RunTests.cpp 的文件的原因。感谢您的快速回复。 -弗雷迪
猜你喜欢
  • 1970-01-01
  • 2015-03-12
  • 2013-07-16
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多