我刚刚下载并安装了 lcc64 编译器。 为了测试它是否有效,我编译了这个程序
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("test");
return 0;
}
通过使用 lcc64.exe Source.c -o prog.exe
。
但是,如果我尝试在控制台中启动程序 prog.exe
,
弹出一个窗口,显示“不支持的 16 位应用程序”,“由于与 64 位版本的 Windows 不兼容,无法打开程序或功能 '\??\C:\lcc\lcc\bin\prog.exe'。 "
我做错了什么?
最佳答案
首先,我强烈建议您下载并使用 user manual对于项目页面上可用的 lcc。
这里的问题是编译器不生成可执行文件——它生成目标文件。然后您需要使用链接器来生成可执行文件。您覆盖了编译器的标准输出,将其生成的 .obj
文件命名为 prog.exe
,但将 .obj
文件命名为.exe
文件不会使其成为可执行文件。要以最简单的方式让您的测试工作,您需要:
..\test> lcc64 source.c
这会生成一个文件 source.obj
。然后你需要
..\test> lcclnk64 source.obj
这会生成一个文件 source.exe
。运行文件然后产生输出:
..\test> source
test
对于较大的项目,您通常会编写和维护构建脚本来管理正确的编译顺序并将所有源链接到最终的可执行文件中。
关于c - 不支持的 16 位应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40070799/