我有一个Visual Studio 2010解决方案,其中包含几个非常密切相关的项目。想要远离复制粘贴代码共享并在项目之间共享一些常见的类。我们已经尝试将类的引用从项目A添加到项目B中,但是在共享类引用错误的stdafx.h文件时会出现编译错误。请注意,两个项目都预先打开了预编译头文件。
我们还了解到使用预处理器定义的not possible to #ifdef the correct stdafx.h文件。
此时看起来我们的选择是构建一个静态库项目或多个项目,并从项目A和A中引用它们。 B,或者尝试将正确的stdafx.h文件的预构建事件复制到共享代码子文件夹中。第三个是重新设计两个项目,根本不使用stdafx.h。
所有这些选项对我来说都有点矫枉过正。是否有一个我想念的更简单的解决方案?
答案 0 :(得分:1)
在我阅读你的问题时,直接突然出现的两个是:
在您的实例中,1可以让您更快地提高工作效率,但不要从项目中删除stdafx,因为这意味着必须通过您的项目并关闭预编译的标头。只需删除您添加的所有内容,并将其保留为两个项目的默认值。已经有一段时间了,因为我必须这样做,但我想我会然后右击并单独编译每个cpp文件。这将为您提供该编译单元缺少的头文件。加入它们,然后冲洗并重复每次。
通过静态分析运行代码会突出显示可以加速编译的内容(前向声明与包含等)。
答案 1 :(得分:1)
当我遇到这个问题时,我通过以下方法解决了这个问题:
这仍然允许您使用PCH文件,并且您不必担心编译器使用错误的文件。如果我没记错的话VS会为你创建的任何新类使用当前指定的PCH文件名。
答案 2 :(得分:0)
我们使用 sample variant
1 HLA5 1
2 HLA7 1
的原始来源EXCEPT创建.cxx
个文件。这是实现该类的主文件。
然后我们创建仅包含的单独项目特定#include "stdafx.h"
文件(例如.cpp
)
NumEdit.cpp
然后,每个项目的#include "stdafx.h"
#include "\pathtoimplementation\NumEdit.cxx"
和debug
文件夹都包含项目特定的release
文件。