Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有独立目录库时stdafx.h的处理_C++_Visual Studio 2010 - Fatal编程技术网

C++ 有独立目录库时stdafx.h的处理

C++ 有独立目录库时stdafx.h的处理,c++,visual-studio-2010,C++,Visual Studio 2010,我有一个由许多目录组成的库,每个目录都包含libX.cpp和libX.h文件,其中X是目录名。一个libX可以在不同的项目中使用。问题是,在编译每个项目时,都要求在libX.cpp中包含stdafx.h。我想我必须包括为当前项目生成的stdafx.h文件(如果我错了,请纠正我)。好的,我正在编写#在例如libA.cpp文件中包含“some_absolute_path1\stdafx.h”。 但我在另一个项目中使用相同的libA.cpp,然后我必须更改行 #include "some_absolu

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

#include "some_absolute_path1\stdafx.h"

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


处理这种情况的最佳方法是什么?

您不能简单地使用stdafx.h。它仅用于预编译头

您可以执行
#包括“some_absolute_path2\libX.h”


如果仍要使用预编译头,只需在需要库的项目的stdafx.h中包含“some_absolute_path2\libX.h”。

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

我发现这篇文章:


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

我只使用一行
int n(int f){return 0;}
完成了简单的libx.cpp,但编译器会抛出错误
错误1错误C1010:查找预编译头时出现意外的文件结尾。您是否忘记将“#include”StdAfx.h”添加到源代码中?c:\A\LibA.cpp
这一行中的什么导致使用预编译头?那么为什么需要为StdAfx.h添加include行?您是否收到任何错误或警告?是的,我收到错误:错误1错误C1010:查找预编译头时出现意外的文件结尾。您是否忘记在源代码中添加“#include”StdAfx.h”?c:\A\LibA.cpp
您不能简单地使用StdAfx.h。它仅用于预编译头。
我不能-如果我不使用它,visual studio将报告错误
你可以做#包括“一些绝对路径2\libX.h”
你的意思是我可以包括libX.h到stdafx.h?我认为stdafx.h必须包含在libX.h中。
#include "some_absolute_path2\stdafx.h"