日期:2014-05-16  浏览次数:20585 次

怎样使gcc生成二进制机器码
我正打算用gcc和nasm写一些代码来研究操作系统的原理
但gcc编译出来的可执行文件是针对某个特定操作系统的,请问使用怎样的参数才能生成一个“纯净”的二进制可执行文件?


------解决方案--------------------
PE是windows的文件格式,gcc不会产生PE文件头的

至于ELF文件头,要看你用gcc时候的命令行选项。
如果什么也不加,编译加连接,产生的是ELF可执行文件
如果用-s,只编译不连接,产生的是ELF可重装载文件

要混合编程的话,gcc命令行加-s,nasm命令行加-f elf