gpt4 book ai didi

适用于 GCC 和 MS Visual Express C++ 的 C 程序仅适用于 GCC

转载 作者:行者123 更新时间:2023-11-30 17:02:14 25 4
gpt4 key购买 nike

我正在尝试让我的学校作业在 GCC 和 MS VS 环境中运行,但由于某种原因,它无法在 MS VS 中编译...

错误是:

warning C4627: '#include ': skipped when looking for precompiled header use - Add directive to 'Stdafx.h' or rebuild precompiled header

unexpected #endif (the one after #include "Stdafx.h")

当我将“Stdafx.h” header 放在第一行时,它的行为就像没有 stdio 并且所有内容(HANDLE、int 等)都是非法声明。

#include <stdio.h>
#include <stdlib.h>

#ifdef _MSC_VER
#include "Stdafx.h"
#include <windows.h>
#endif // _MSC_VER

#ifdef __GNUC__
#include <unistd.h>
#endif // __GNUC__

#ifdef _MSC_VER

int main ()
{
printf("___MS VS Studio/Express compiler___\n");

/*some stuff here*/
return 0;
}
#endif //_MSC_VER

#ifdef __GNUC__

int main()
{
printf("___GCC compiler___\n");
/*some other stuff here*/
return 0;
}
#endif // __GNUC__

它在 GCC 上运行良好,我怀疑它与 MS VS 中 #ifdef 条件中的 #includes 有关,但我不知道如何正确执行它..

任何人都可以纠正我如何使其正常工作吗?欢迎任何有用的建议,谢谢!

最佳答案

您的文件应如下所示开始,必须首先包含“stdafx.h”文件。这是 Visual Studio 的“预编译头”功能所必需的。

#ifdef _MSC_VER
#include "Stdafx.h"
#include <windows.h>
#endif // _MSC_VER

#include <stdio.h>
#include <stdlib.h>


#ifdef __GNUC__
#include <unistd.h>
#endif // __GNUC__

如果这不起作用,请尝试启动构建 - 重建解决方案命令。

如果这不起作用,您可以像这样删除预编译头:

  • 启动项目 - 属性命令
  • C/C++ - 预编译 header 选项卡中,单击“预编译 header ”并选择“不使用预编译 header ”。

关于适用于 GCC 和 MS Visual Express C++ 的 C 程序仅适用于 GCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com