在pelles c中,windows.h无法编译

时间:2011-03-27 19:35:11

标签: c header-files pelles-c

我正在使用pelles c。当我编译这段代码时:

#include <windows.h>
#include <stdio.h>

void main(void)
{
   printf("Hello World");
}

我收到此错误:

D:\Program Files\PellesC\Include\Win\basetsd.h(53): error #2001: Syntax error: expected ';' but found 'INT64'.
D:\Program Files\PellesC\Include\Win\basetsd.h(53): warning #2099: Missing type specifier; assuming 'int'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): error #2120: Redeclaration of '__int64', previously declared at D:\Program Files\PellesC\Include\Win\basetsd.h(53); expected 'int' but found 'unsigned int'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): error #2001: Syntax error: expected ';' but found 'UINT64'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): warning #2099: Missing type specifier; assuming 'int'.
D:\Program Files\PellesC\Include\Win\winnt.h(558): fatal error #1014: #error: "No target architecture".

感谢您的帮助。

3 个答案:

答案 0 :(得分:12)

要在windows.h中使用PellesC,您必须转到:

  • 项目 - &gt;项目选项 - &gt;编译器
  • 检查:启用Microsoft扩展程序

答案 1 :(得分:0)

您缺少其他编译器(例如Visual Studio)始终定义的#define个。它们提供有关处理器体系结构,操作系统版本,SDK版本等的基本信息。

最好查看Microsoft文档,了解其编译器定义的宏,并执行相同的操作。

page可能是一个很好的起点。

答案 2 :(得分:-1)

  1. 使用int main(void)而非void main(void)
  2. 初始化您的计划
  3. 您在最后一个括号之前错过了return(0);的退货声明。您必须包含此内容,否则您将收到语法错误,因为您的程序不知道何时停止运行。
  4. 然后执行以下操作

    1. 从下拉菜单栏中选择Project,然后向下滚动并选择“项目选项。
    2. 选择Compiler标签,确保Calling conv:框已选中_cdecl
    3. 点击linker标签,确保在subsystem框中将类型设置为Console
    4. 再次尝试构建它,看看会发生什么!