Ana*_*DIL 1 c linker-errors undefined-reference
我注意到当我使用sin内部函数时,编译器无法识别它,这是一个例子:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
float sinus(float a){
return sin(a);}
int main(int argc, char **argv)
{
double a = sinus(2);
printf("%f \n", sin(2));
printf("%f", a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我直接在 main 中使用它,它工作正常,但在用户定义的函数中,它给了我这个错误undefined reference to sin。
对于编译,我使用gcc -Wall -lm -lc -lgcc -o "%e" "%f".
对库的引用通常位于命令行的末尾,特别是在指定源之后:
gcc -Wall -o "%e" "%f" -lm
Run Code Online (Sandbox Code Playgroud)
(指定 C lib 不是必需的,它是链接隐式的)
从文档:
-l库
[...]
在命令中编写此选项的位置有所不同;链接器按照指定的顺序搜索和处理库和目标文件。因此,'foo.o -lz bar.o' 在文件 foo.o 之后但在 bar.o 之前搜索库 'z'。如果 bar.o 引用 'z' 中的函数,则可能不会加载这些函数。
| 归档时间: |
|
| 查看次数: |
578 次 |
| 最近记录: |