无法编译x86_64 .s和.c文件:函数的未定义引用

暴风雨

这是我的问题,我尝试创建一个汇编函数库并将其与C程序一起使用。我遇到未定义的参考错误。

我在学校为该项目提供的虚拟机上使用xubuntu(所以我想一切设置都很好...)

汇编文件(ft_function.s)

section .text
    global _ft_function

_ft_function:
    mov rax, 42
    ret

C文件(main.c)

extern int ft_function(char const *str);

int main()
{
    return (ft_function("abc"));
}

目前,由于问题仍然存在,我没有创建库,只是为了减少最简单的情况,所以我生成了目标文件,然后将它们与clang链接。

nasm -f elf64 ft_function.s -o ft_function.o
clang -c main.c

clang ft_function.o main.o

main.o: In function `main':
main.c:(.text+0x1a): undefined reference to `ft_function'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

谢谢你的帮助 !干杯!

内特·艾德雷奇
section .text
    global _ft_function

_ft_function:
    mov rax, 42
    ret

省略领先的下划线。其他一些系统使用以下划线开头的符号名称,但Linux不使用。做就是了:

section .text
    global ft_function

ft_function:
    mov rax, 42
    ret

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

编译和链接多个 C 库(卡在未找到架构 x86_64 的符号处)

来自分类Dev

编译.C文件:体系结构x86_64的未定义符号

来自分类Dev

(.text + 0x20):对“ main”的未定义引用和对函数的未定义引用

来自分类Dev

(.text + 0x20):对“ main”的未定义引用和对函数的未定义引用

来自分类Dev

在子文件夹中编译.h和.cpp时的C ++未定义引用

来自分类Dev

条带化付款库和x86_64的未定义符号

来自分类Dev

osx-体系结构x86_64的boost和python未定义符号

来自分类Dev

编译.c:体系结构x86_64的未定义符号

来自分类Dev

体系结构x86_64的未定义符号:用C ++编译

来自分类Dev

编译C程序中体系结构x86_64的未定义符号

来自分类Dev

体系结构x86_64的未定义符号:用C ++编译

来自分类Dev

使用g ++编译C ++程序的体系结构x86_64的未定义符号

来自分类Dev

架构x86_64的未定义符号:编译问题

来自分类Dev

编译/链接错误:体系结构x86_64的未定义符号

来自分类Dev

体系结构x86_64的未定义符号:编译错误

来自分类Dev

体系结构x86_64的未定义符号:编译错误

来自分类Dev

体系结构 x86_64 和链接器命令的未定义符号失败,退出代码为 1

来自分类Dev

使用混合C和C ++的函数的未定义引用

来自分类Dev

混合 C 和 C++... 未定义的函数引用

来自分类Dev

在Mac上编译C程序会导致“体系结构x86_64”的未定义符号错误

来自分类Dev

为x86_64的裸机ARM和二进制文件正确地编译Rust代码以作为裸机ARM?

来自分类Dev

错误架构x86_64的未定义符号:

来自分类Dev

ProgressHUD:架构 x86_64 的未定义符号:

来自分类Dev

架构x86_64的未定义符号:“ _ OBJC_CLASS _ $ _ HandBluetooth”,引用自:

来自分类Dev

SwiftUI canvas预览编译错误:体系结构x86_64的未定义符号

来自分类Dev

使用gtest和clang 12编写单元测试时,体系结构x86_64的未定义符号

来自分类Dev

x86_64 Linux函数和syscalls之间的ABI差异

来自分类Dev

体系结构x86_64的未定义符号:在Xcode 8中调用C ++函数时

来自分类Dev

体系结构x86_64函数指针的未定义符号

Related 相关文章

  1. 1

    编译和链接多个 C 库(卡在未找到架构 x86_64 的符号处)

  2. 2

    编译.C文件:体系结构x86_64的未定义符号

  3. 3

    (.text + 0x20):对“ main”的未定义引用和对函数的未定义引用

  4. 4

    (.text + 0x20):对“ main”的未定义引用和对函数的未定义引用

  5. 5

    在子文件夹中编译.h和.cpp时的C ++未定义引用

  6. 6

    条带化付款库和x86_64的未定义符号

  7. 7

    osx-体系结构x86_64的boost和python未定义符号

  8. 8

    编译.c:体系结构x86_64的未定义符号

  9. 9

    体系结构x86_64的未定义符号:用C ++编译

  10. 10

    编译C程序中体系结构x86_64的未定义符号

  11. 11

    体系结构x86_64的未定义符号:用C ++编译

  12. 12

    使用g ++编译C ++程序的体系结构x86_64的未定义符号

  13. 13

    架构x86_64的未定义符号:编译问题

  14. 14

    编译/链接错误:体系结构x86_64的未定义符号

  15. 15

    体系结构x86_64的未定义符号:编译错误

  16. 16

    体系结构x86_64的未定义符号:编译错误

  17. 17

    体系结构 x86_64 和链接器命令的未定义符号失败,退出代码为 1

  18. 18

    使用混合C和C ++的函数的未定义引用

  19. 19

    混合 C 和 C++... 未定义的函数引用

  20. 20

    在Mac上编译C程序会导致“体系结构x86_64”的未定义符号错误

  21. 21

    为x86_64的裸机ARM和二进制文件正确地编译Rust代码以作为裸机ARM?

  22. 22

    错误架构x86_64的未定义符号:

  23. 23

    ProgressHUD:架构 x86_64 的未定义符号:

  24. 24

    架构x86_64的未定义符号:“ _ OBJC_CLASS _ $ _ HandBluetooth”,引用自:

  25. 25

    SwiftUI canvas预览编译错误:体系结构x86_64的未定义符号

  26. 26

    使用gtest和clang 12编写单元测试时,体系结构x86_64的未定义符号

  27. 27

    x86_64 Linux函数和syscalls之间的ABI差异

  28. 28

    体系结构x86_64的未定义符号:在Xcode 8中调用C ++函数时

  29. 29

    体系结构x86_64函数指针的未定义符号

热门标签

归档