【问题标题】:C++ visual studio doesn't build properlyC++ Visual Studio 无法正确构建
【发布时间】:2015-12-17 11:41:29
【问题描述】:

我在使用 Visual Studio 2013 时遇到了一些严重问题。我有一个包含 2 个文件的 C++ 控制台项目:Main.cpp 和 A.cpp,我在 Main.cpp 中使用 #include "A.cpp" 导入 A.cpp。

问题是:当我编辑A.cpp 并运行Main.cpp 时,没有发生更改。我也必须更改 Main.cpp,然后 Visual Studio 才会注意到更改并正确重新编译所有内容。

当我试图更改 A.cpp 中的某些内容时,这非常烦人,知道如何解决这个问题吗?

编辑:

我尝试将 A.cpp 重命名为 A.hpp 并从 Main.cpp 中包含 A.hpp,结果相同:在我也更改 Main.cpp 之前,构建中不会发生对 A.hpp 的更改。我尝试将A.hpp 放在解决方案资源管理器中的头文件和源文件中,结果仍然相同。

【问题讨论】:

  • A.cpp 添加到 VS 项目中。顺便说一句,除非您知道自己在做什么,否则永远不要将 .cpp 文件包含在彼此中。 C++ 不是 Java。
  • 我如何将A.cpp添加到VS项目中?我在解决方案资源管理器的 Source Files 文件夹中看到了 Main.cppA.cpp
  • @kajacx,你有A.h。如果没有,则创建一个并添加它。您可以展示一个最小的工作示例,以便人们判断您在做什么。
  • @kajacx 这意味着A.cpp 已经包含在项目中。执行用户@VolAnd 建议的操作并创建相应的头文件A.h 并将其包含在main 中,而不是A.cpp

标签: c++ visual-studio-2013 build compilation include


【解决方案1】:

永远不要#include "A.cpp"!只有h-files(或hpp)应该包含在#include中。如果您想在Main.cpp 中使用A.cpp 中定义的某些函数,我必须使用该函数的声明创建A.h(并且不要更改A.cpp)。当然,您需要将Main.cppA.cpp 都添加到项目中。

注意:如果将A.cpp 添加到VS 项目中并留下#include "A.cpp"(不是#include "A.h"),这将导致从A.cpp 重新定义函数时出现问题。

简单解释见C++ forumother examples

【讨论】:

  • 他应该将它添加为“C++头文件”(可以在文件属性中更改)。
  • 您的建议总体上是合理的。但是,在某些情况下,您确实想要包含“cpp”文件。我记得它用于一种技术,可以让你在“cpp”文件中实现模板:codeproject.com/Articles/48575/…
  • @MarkoPopovic 是的,我的回答很笼统,但它是针对一般问题的。无论如何,感谢您的链接,也许它对 kajacx 有用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 2019-03-15
  • 2020-06-01
  • 1970-01-01
  • 2012-12-31
相关资源
最近更新 更多