Linux下的gcc编译后生成Linux下的可执行文件,window下gcc编译后是exe文件,为什么不一样啊?是怎么做到的
答案:3 悬赏:0 手机版
解决时间 2021-02-19 16:53
- 提问者网友:动次大次蹦擦擦
- 2021-02-18 15:57
Linux下的gcc编译后生成Linux下的可执行文件,window下gcc编译后是exe文件,为什么不一样啊?是怎么做到的
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-02-18 16:05
首先,这win和Linux下的gcc功能是一样的,实际的gcc.exe和linux下的gcc这两个文件不是一样的,他们毕竟需要在工作在不同的平台上,而且他们做的一些工作是有区别的。
编译过程是把源文件翻译成机器码,然后链接成一个整体,拼接成一个文件。不管是win下的exe还是Linux下的ELF,都是按照一定规范来的,比如头部放什么,尾部放什么,中间又存哪些信息等。但是,如果要编译出正确的可执行的文件,不同的操作系统里就必须按照不同的规范来组织这个文件。
这些文件的执行过程,并不是说它们可以直接执行,执行的时候,系统把它们从磁盘上,读到内存中,经过一系列的前期工作,才可以最终执行起来,这个前期过程都是操作系统来搞定的。
你不应该问gcc是怎么做到的,而应该问gcc为什么需要这样。如果你需要知道细节,去看《程序员的自我修养》
编译过程是把源文件翻译成机器码,然后链接成一个整体,拼接成一个文件。不管是win下的exe还是Linux下的ELF,都是按照一定规范来的,比如头部放什么,尾部放什么,中间又存哪些信息等。但是,如果要编译出正确的可执行的文件,不同的操作系统里就必须按照不同的规范来组织这个文件。
这些文件的执行过程,并不是说它们可以直接执行,执行的时候,系统把它们从磁盘上,读到内存中,经过一系列的前期工作,才可以最终执行起来,这个前期过程都是操作系统来搞定的。
你不应该问gcc是怎么做到的,而应该问gcc为什么需要这样。如果你需要知道细节,去看《程序员的自我修养》
全部回答
- 1楼网友:舍身薄凉客
- 2021-02-18 17:38
你认为这两个gcc是一模一样的吗?
- 2楼网友:撞了怀
- 2021-02-18 17:30
-e 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.
例子用法:
gcc -e hello.c > pianoapan.txt
gcc -e hello.c | more
慢慢看吧,一个hello word 也要与处理成800行的代码
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯