亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2122 | 回復(fù): 4
打印 上一主題 下一主題

目標文件的制作 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-08-09 15:04 |只看該作者 |倒序瀏覽
請教一下,

如何生成一個目標文件(*.o)?

我的意思是,如果我要手工生成一個 *.o 的目標文件(注意,不是一般情況下的利用工具進行編譯,即例如一個C的源程序會先翻譯成匯編程序,然后利用nasm/gas等的工具生成對應(yīng)的 *.o目標文件,最后利用ld生成ELF/AOUT格式的程序),該如何做?

此外,是否存在一定的目標文件格式(即,如果是一個ELF文件,則會存在一個ELF頭;那對于一個目標文件,是否也存在一個”目標文件頭“)?

論壇徽章:
0
2 [報告]
發(fā)表于 2013-08-09 15:07 |只看該作者
回復(fù) 1# landker

ding
   

論壇徽章:
0
3 [報告]
發(fā)表于 2013-08-10 12:16 |只看該作者
回復(fù) 1# landker


此外,我還有一個疑問,具體如下:

對于 hello.c , 假設(shè)代碼為:

void main()
{
      int c = 1;
}

1)編譯生成 hello.o,并指定該目標文件(hello.o)的格式為 elf,即帶elf頭

2)簡單編寫一個入口函數(shù)(帶 _start)的匯編文件,并編譯成 start.o,同樣為 elf 格式

3)鏈接(ld)生成可執(zhí)行文件 hello,并指定其格式為 elf

我相信一般的編譯步驟為以上的3步(當然可以更詳細的),我的疑問是關(guān)于 hello.o 和 hello 之間的區(qū)別(即 第2步 和 第3步 得出的文件),個人認為:

相同點:hello.o 和 hello 都是目標文件,且都是 elf 格式的;

不同點:hello指定了入口函數(shù)(在加載時可以直接執(zhí)行),而 hello.o 卻沒有(只能是一個“中間”文件)。


是這樣嗎?
   

論壇徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
4 [報告]
發(fā)表于 2013-08-12 11:23 |只看該作者
回復(fù) 1# landker


    搜 elf文件格式

論壇徽章:
1
水瓶座
日期:2013-09-28 21:40:25
5 [報告]
發(fā)表于 2013-08-24 01:13 |只看該作者
Linux下編譯器默認都是ELF格式,你可以制定成其他的。例如nasm的-f選項。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP