不支持的 16 位应用程序

Unsupported 16 bit application

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

#include <stdio.h>

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

通过使用 lcc64.exe Source.c -o prog.exe。 但是如果我尝试在控制台中启动程序 prog.exe, window 弹出说 "Unsupported 16 bit application"、"The Program or feature '\??\C:\lcc\lcc\bin\prog.exe' cant be opened due to an incompatibility with 64-bit versions of Windows."

我做错了什么?

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

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

 ..\test> lcc64 source.c

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

 ..\test> lcclnk64 source.obj

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

 ..\test> source
 test

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