繁体   English   中英

在nasm中链接c函数

[英]link c function in nasm

有一个nasm项目,我从中调用ac函数

我把函数的名字放在“ extern”中

并且当链接时,我将所有链接放在一起,但出现“未定义的引用”错误

这是我的编译/链接命令

gcc -o Project4 Project4.o array1c.c readdouble.o writedouble.o readarray.o printarray.o addarray.o invertarray.o invertarray2.o invertarray3.o averagearray.o quicksort.c

首先,我将使用“ gcc -c”命令将所有.c文件编译为目标文件,然后将这些生成的.o文件(例如“ array1c.o”和“ quicksort.o”)与您的其他pre-链接在一起现有的目标文件,看看是否仍然可以提供未定义的引用。 这可能是不必要的步骤,但我从未在单个调用gcc的过程中合并原始.c文件和.o文件。

您可能还必须在所有称为c的函数的开头添加下划线。。。我知道这是平台相关的(例如,Linux通常不需要在c函数上使用下划线,而OSX和某些其他UNIX平台做)。

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

希望这可以帮助,

杰森

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM