处理 stdafx.h 时有单独的目录库

dealing with stdafx.h when have separate directory library

本文关键字:单独 stdafx 处理      更新时间:2023-10-16

我有一个由许多目录组成的库,每个目录都包含libX.cpplibX.h文件,其中X是目录名称。一个libX可能用于不同的项目。问题是在编译每个项目时要求在libX.cpp中包含stdafx.h。我想我必须包括stdafx.h当前项目生成的文件(如果我错了,请纠正我)。好的,例如,我正在#include "some_absolute_path1stdafx.h" libA.cpp文件中写入。但是我在另一个项目中使用相同的libA.cpp然后我必须更改行

#include "some_absolute_path1stdafx.h"

#include "some_absolute_path2stdafx.h"

项目之间切换时更改 stdafx.h 路径不是很舒服。

在这种情况下,最好的处理方法是什么?

你可以简单地不使用stdafx.h。它仅用于预编译标头。

你可以做#include "some_absolute_path2libX.h"

如果您仍想使用预编译标头,您只需在需要库的项目的 stdafx.h 中#include "some_absolute_path2libX.h"即可。

当您的库正在使用要包含的文件中定义的某些资源时,需要任何包含。如果您需要包含 stdafx.h,是因为您有一些依赖关系强制这样做。您应该查看导致您要求将此项目相关文件包含在库中的原因(不是特定于项目)

我找到了这篇文章:http://en.wikipedia.org/wiki/Precompiled_header

然后我会尝试将 stdafx.h 移动到您的 main 中的第一个包含.cpp其中您还包括您的 libx.h 文件。