小编Soc*_*314的帖子

AVR-GCC 未将 C++ 与汇编函数链接

我试图从 C++ 调用一个汇编函数,链接器说我试图调用的函数不存在。这是错误:

avr-gcc -mmcu=atmega328 -Wall -o main.elf hello.S main.cpp
/tmp/ccS7uaAX.o: In function `main':
main.cpp:(.text+0x14): undefined reference to `hello(char, char, char, char, char)'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这是我的来源:

//Somewhere in hello.S

.global hello
hello:
    ret

//In main.cpp

extern void hello(char, char, char, char, char);

int main(){
    hello(1, 2, 3, 4, 5);
}
Run Code Online (Sandbox Code Playgroud)

如果这有帮助,以下是我将它们编译成目标文件后对文件的反汇编:

这是 main.o:

00000000 <main>:
   0:   0f 93           push    r16
   2:   cf 93           push    r28
   4:   df 93           push    r29
   6:   cd b7           in  r28, …
Run Code Online (Sandbox Code Playgroud)

c++ assembly avr-gcc

2
推荐指数
1
解决办法
816
查看次数

标签 统计

assembly ×1

avr-gcc ×1

c++ ×1