我使用Code :: Blocks与GNU GCC编译器。 我的问题是:有没有办法将c / c ++代码编译成ms-dos 16bit(.com)可执行格式?
我试图设置构建选项并在网上搜索编译器参数,但我找不到任何东西。
您当然可以将C和/或(一种古老的方言)C ++编译为16位MS-DOS .com文件。 你有Code :: Blocks的编译器/链接器几乎肯定不能这样做。
特别是,至少据我所知,gcc从未试图为16位分段存储器环境生成代码。 至少有一个gcc端口到DOS扩展器( DJGPP ,但它产生.exe文件,而不是.com,它使用专有的DOS扩展器和古老版本的gcc)。
如果你真的需要生成一个.com文件,那么有很多选项,但所有编译器都很老,所以特别是对于C ++而言,他们接受的语言非常有限。
目标(ed)MS-DOS的工具链。
警告:如前所述,所有这些都非常古老。 一般来说,他们接受的C是合理符合的C89,但仅适用于相当小的程序(在代码和数据大小方面 – 必要性:.com文件基本上限于总共64K字节的数据和代码)。 他们接受的C ++与现代甚至接近现代的C ++之间的差异要大得多(例如,有些人根本不支持模板)。 这里所有提及的一致性都与当时的其他编译器有关; 按照现代标准,它们的一致性是非常可怕的。
当时还有不止一些,但这些可能占当时市场的90%以上。
您正在寻找的是exe2bin。 这是DOS附带的实用程序,用于将.EXE格式的目标代码转换为.COM格式(一个64K段中的代码和数据)。 它带有DOS和一些编译器/汇编器。
需要了解更多c/c++开发分享如何将c / c ++编译为ms-dos .com程序?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享如何将c / c ++编译为ms-dos .com程序?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/980666.html