日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何编译文件(gcc + nasm)

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何编译文件(gcc + nasm) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【0】README

編譯文件(nasm + gcc),特別是編譯目標文件的依賴文件;本文旨在回顧 gcc 和 nams 編譯器的編譯命令,以及如果有多個依賴文件該如何編譯;


【1】編譯文件

1.1)編譯 lib/syscall.asm(lib/syscall.asm)

nasm -I include/sys/ lib/syscall.asm -o syscall.o

1.2)編譯 lib/string.asm(lib/string.asm)

nasm -I include/sys/ lib/string.asm -o string.o

1.3)編譯 fs 的接口(lib/open.c + lib/read.c + lib/write.c + lib/close.c + lib/unlink.c)

[hadoop@hadoop0 c]$ gcc -M lib/open.c -I include/ -I include/sys (查找 lib/open.c 所依賴的文件) open.o: lib/open.c include/type.h include/stdio.h include/type.h \include/sys/const.h include/sys/protect.h include/string.h \include/sys/fs.h include/sys/proc.h include/sys/tty.h \include/sys/console.h include/sys/global.h include/sys/proto.h



gcc -I include/ -I include/sys -c -fno-builtin lib/unlink.c -o lib/unlink.o

1.4)編譯MM 的 接口(lib/fork.c + lib/exit.c + lib/wait.c)

[hadoop@hadoop0 c]$ gcc -I include/ -I include/sys/ -c -fno-builtin lib/fork.c -o lib/fork.o [hadoop@hadoop0 c]$ gcc -I include/ -I include/sys/ -c -fno-builtin lib/exit.c -o lib/exit.o [hadoop@hadoop0 c]$ gcc -I include/ -I include/sys/ -c -fno-builtin lib/wait.c -o lib/wait.o

1.5)編譯SYS 的接口(lib/getpid.c)

gcc -I include/ -I include/sys/ -c -fno-builtin lib/getpid.c -o lib/getpid.o

1.6)others (lib/misc.c + lib/vsprinf.c + lib/printf.c)

[hadoop@hadoop0 c]$ gcc -I include/ -I include/sys/ -c -fno-builtin lib/misc.c -o lib/misc.o [hadoop@hadoop0 c]$ gcc -I include/ -I include/sys/ -c -fno-builtin lib/vsprintf.c -o lib/vsprintf.o [hadoop@hadoop0 c]$ gcc -I include/ -I include/sys/ -c -fno-builtin lib/printf.c -o lib/printf.o

1.7)將上述目標文件編譯為 C運行時庫

[hadoop@hadoop0 c]$ ar rcs lib/orangescrt.a lib/syscall.o lib/printf.o lib/vsprintf.o \ > lib/string.o lib/misc.o lib/open.o lib/read.o lib/write.o lib/close.o \ > lib/unlink.o lib/getpid.o lib/fork.o lib/exit.o lib/wait.o 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的如何编译文件(gcc + nasm)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。