gpt4 book ai didi

c - 未定义对 "function"汇编函数的引用

转载 作者:行者123 更新时间:2023-11-30 17:07:26 25 4
gpt4 key购买 nike

这是我第一次在这里发帖,因为我通常能够通过其他问题找到答案,但像我这样的问题的所有其他解决方案都不起作用。

我在 Eclipse Mars 中使用 MinGW GCC

C代码

#include <stdio.h>
#include <stdlib.h>


extern int logicShift(int);
void program1();

int main(void)
{
program1();

return 0;
}

void program1()
{
int num = 0;
int disp;
while (num >= 0)
{
num += 2;
disp = logicShift(num); // this is the error right here
printf ("%d", disp);
}
}

错误:未定义对逻辑移位的引用

assembly.s 文件:

.global logicShift

logicShift:
push %ebp
movl %esp, %ebp

movl 8(%ebp), %edx
shll $1, %edx

movl %edx, %eax
pop %ebp
ret

组装很简单。函数没有 _ 前缀。我现在正在抓狂,我需要帮助。谢谢。

最佳答案

这可能是因为您没有在编译命令中包含汇编代码的目标文件/源文件,从而没有正确编译它们。

假设您在 main.c 中有 C 源代码,在 logicshift.S 中有汇编源代码,那么您可以编译它们以生成名为 main 的可执行文件 为:

gcc main.c logicshift.S -o main

关于c - 未定义对 "function"汇编函数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077552/

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