我试图用gcc编译https://www.cs.uaf.edu/courses/cs301/2014-fall/notes/inline-assembly/底部的代码,得到了一个错误。
首先,代码如下:
extern "C" long my_fn(long in); /* Prototype */
__asm__( /* Assembly function body */
"my_fn:\n"
" mov %rdi,%rax\n"
" add $100,%rax\n"
" ret\n"
);
int foo(void) {
return my_fn(3);
}
字符串
下面是错误:
test.c:1:8: error: expected identifier or ‘(’ before string constant
1 | extern "C" long my_fn(long in); /* Prototype */
| ^~~
test.c: In function ‘foo’:
test.c:11:11: warning: implicit declaration of function ‘my_fn’ [-Wimplicit-function-declaration]
11 | return my_fn(3);
| ^~~~~
型
有什么想法吗
1条答案
按热度按时间xpszyzbs1#
它看起来像你试图使用C编译器编译C代码。
要么用g(gcc的C++版本)编译,要么通过从有问题的行中删除有问题的
extern "C"
将代码重写为有效的C。字符串