gcc 的奇怪编译问题
Strange compilation issue with gcc
为什么下面的程序用gcc编译,...
#include<stdio.h>
#include<math.h>
void foo(double x) {
printf("%f", sin(2));
}
int main() {
foo(1);
}
...而这个其他程序没有?
#include<stdio.h>
#include<math.h>
void foo(double x) {
printf("%f", sin(x));
}
int main() {
foo(1);
}
它给出了以下错误信息:
/tmp/ccVT7jlb.o: nella funzione "foo":
fun.c:(.text+0x1b): riferimento non definito a "sin"
collect2: error: ld returned 1 exit status*
你需要像这样 link 到 libm.so
gcc -Wall -Wextra -Werror source.c -o executable -lm
查看 -lm
为什么下面的程序用gcc编译,...
#include<stdio.h>
#include<math.h>
void foo(double x) {
printf("%f", sin(2));
}
int main() {
foo(1);
}
...而这个其他程序没有?
#include<stdio.h>
#include<math.h>
void foo(double x) {
printf("%f", sin(x));
}
int main() {
foo(1);
}
它给出了以下错误信息:
/tmp/ccVT7jlb.o: nella funzione "foo":
fun.c:(.text+0x1b): riferimento non definito a "sin"
collect2: error: ld returned 1 exit status*
你需要像这样 link 到 libm.so
gcc -Wall -Wextra -Werror source.c -o executable -lm
查看 -lm