不支持的16位应用程序

时间:2016-10-16 13:28:09

标签: c exe lcc

我刚下载并安装了lcc64编译器。 为了测试它是否有效,我编译了这个程序

#include <stdio.h>

int main(int argc, char *argv[]) {      
    printf("test");
return 0;
}

使用lcc64.exe Source.c -o prog.exe。 但是,如果我尝试在控制台中启动程序prog.exe, 弹出一个窗口,说“不支持的16位应用程序”,“程序或功能'\ ?? \ C:\ lcc \ lcc \ bin \ prog.exe'由于与64位版本的Windows不兼容而无法打开。 “

我做错了什么?

1 个答案:

答案 0 :(得分:1)

首先,我强烈建议您下载并使用项目页面上提供的user manual作为lcc。

这里的问题是编译器不生成可执行文件 - 它会生成目标文件。然后,您需要使用链接器生成可执行文件。您已覆盖编译器的标准输出以命名它生成的.obj文件prog.exe,但是将.obj文件命名为.exe文件并不会使其成为可执行文件。要以最简单的方式让您的测试工作,您需要:

 ..\test> lcc64 source.c

这会生成一个文件source.obj。然后你需要

 ..\test> lcclnk64 source.obj

这会生成一个文件source.exe。运行该文件然后生成输出:

 ..\test> source
 test

对于较大的项目,您通常会编写和维护一个构建脚本,该脚本管理正确的编译顺序,并将所有源链接到最终的可执行文件中。