Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从Linux上的汇编代码调用c库?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试在英特尔架构上的 Linux程序集中编译一个小程序.我想使用C库的一些功能,但它没有链接. 这是我的装配程序: .text .globl main main: pushl $512 call malloc addl $4, %esp mov $1, %eax mov $0, %ebx int $0x80 我正在编译 as --32 -o
@H_197_6@
@H_197_6@
我正在尝试在英特尔架构上的 Linux程序集中编译一个小程序.我想使用C库的一些功能,但它没有链接.

这是我的装配程序:

.text
.globl main

main:
    pushl $512
    call malloc
    addl $4,%esp

    mov $1,%eax
    mov $0,%ebx
    int $0x80

我正在编译

as --32 -o output.o output.asm

一切顺利.然后当我联系时

ld -static -m elf_i386 -o a.out output.o -lc

,我收到了这些错误

(我还有其他错误,但我认为这足以看出问题了)

我看到一些解决方案表明我应该与-lgcc链接,但在我的计算机上找不到库…

有人有想法吗?

解决方法

glibc要求某些初始化代码与可执行文件静态链接.最简单的方法是使用gcc链接
gcc -static -o a.out output.o

通过将-v传递给gcc,您可以确切地看到链接内容.

大佬总结

以上是大佬教程为你收集整理的如何从Linux上的汇编代码调用c库?全部内容,希望文章能够帮你解决如何从Linux上的汇编代码调用c库?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
猜你在找的Linux相关文章