1

我刚刚下载并安装了 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 不兼容。”

我究竟做错了什么?

4

1 回答 1

1

首先,我强烈建议您下载并使用项目页面上提供的 lcc用户手册

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

 ..\test> lcc64 source.c

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

 ..\test> lcclnk64 source.obj

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

 ..\test> source
 test

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

于 2016-10-16T14:02:18.003 回答