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

我试图让我的作业在GCC和MS VS环境中工作,但由于某种原因,它无法在MS VS编译...

错误是:

警告C4627:'#include':在寻找预编译头文件时跳过使用 - 将指令添加到'Stdafx.h'或重建预编译头文件

要么

意外的#endif(#包括“Stdafx.h”之后的那个)

要么

当我把“Stdafx.h”标题放到第一行时,它的行为就像没有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__

如果这不起作用启动Build - Rebuild Solution命令。

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

  • 启动Project - Properties命令
  • C / C ++ - Precompoiled Headers选项卡中,单击“预编译头文件”并选择“不使用预编译头文件”。
  • 链接地址: http://www.djcxy.com/p/73589.html

    上一篇: C program for GCC and MS Visual Express C++ works only for GCC

    下一篇: how to avoid undefined symbols in C