gpt4 book ai didi

c++ - 问题在内联汇编中定义函数并从 C++ 调用

转载 作者:行者123 更新时间:2023-11-28 04:34:00 24 4
gpt4 key购买 nike

我正在尝试编译以下链接中提到的代码。我收到以下链接器错误:

/tmp/ccUVLIZ0.ltrans0.ltrans.o:在函数“main”中:

:(.text.startup+0x5): 对“one”的 undefined reference

collect2:错误:ld 返回了 1 个退出状态

Equivalent for GCC's naked attribute

链接器没有看到程序集定义?

代码如下:

#include <stdio.h>

asm("_one: \n\
movl $1,%eax \n\
ret \n\
");

int one();

int main() {
printf("result: %d\n", one());
return 0;
}

最佳答案

对于这样的技巧,你需要显式地提供函数规范

#include <stdio.h>

asm("one: \n\
movl $1,%eax \n\
ret \n\
");

extern "C" int one();

int main() {
printf("result: %d\n", one());
return 0;
}

您可能可以在中找到有关 extern "C"的更多解释 What is the effect of extern "C" in C++?

关于c++ - 问题在内联汇编中定义函数并从 C++ 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52062330/

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