您的位置:首页 > 运维架构 > Linux

使用GCC和NASM在Linux下联合编译

2010-11-24 00:27 330 查看
使用GCC和NASM在Linux下联合编译

今天使用nasm和gcc一起编译了一个程序

先使用nasm编译一个asm文件为elf格式,汇编文件里面有全局global的_start和functionC,将来连接的时候用。其中还有extern用来表示外部C语言中的函数。

我的程序的调用结构: _start(ASM)->funB(C)->funC(ASM)

其中 ASM文件中:extern funB、global _start、global funC

C文件中声明:void funC();

函数参数的传递:使用push来传递地址
,而不是数值。最后参数的清理需要caller来自己解决。

需要的命令行:

nasm -f elf -o dest
.o src
.asm

gcc -c -o dest2
.o src2
.c (-c 的意思是仅仅compile)

ld -s -o final
.o dest
.o dest1
.o
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: