gpt4 book ai didi

c - nasm 中的链接 c 函数

转载 作者:行者123 更新时间:2023-11-30 16:02:22 27 4
gpt4 key购买 nike

有一个 nasm 项目,我正在从中调用一个 c 函数

我将函数的名称放在“extern”中

链接时,我将所有链接放在一起,但出现“ undefined reference ”错误

这是我的编译/链接命令

gcc -o Project4 Project4.o array1c.c readdouble.o writedouble.o readarray.o printarray.o addarray.o invertarray.o invertarray2.o invertarray3.oaveragearray.o fastsort.c

最佳答案

我将首先使用“gcc -c”命令将所有 .c 文件编译为目标文件,然后将这些生成的 .o 文件(例如“array1c.o”和“quicksort.o”)与您的其他预先存在的目标文件,看看是否仍然给你一个 undefined reference 。这可能是一个不必要的步骤,但我从未在对 gcc 的一次调用中组合原始 .c 文件和 .o 文件。

您可能还必须在任何名为 ... 的 c 函数的开头添加下划线,我知道这是一个依赖于平台的东西(即,Linux 通常不需要在 c 函数上使用下划线,而 OSX 和一些其他 UNIX 平台也是如此)。

最后,您可以尝试使用 ld 将所有目标文件一次性链接在一起,而不是将某些目标文件链接到 Project4.o 中,然后将其链接到您使用 nasm 组装的文件(至少是这样)我假设你正在做的事情,即,你正在制作一个 Project4.o,然后在你的汇编代码中调用函数)。

希望这有帮助,

杰森

关于c - nasm 中的链接 c 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com