来源:公众号【编程珠玑】
作者:守望先生
ID:shouwangxiansheng
//来源:公众号【编程珠玑】
//main.c
#include <stdio.h>
#include <math.h>
int main(void)
{
int a = 10;
int b = 4;
int c = pow(a,b);
printf("10^4 = %d",c);
return 0;
}
如何确定pow函数需要包含什么头文件?
还是通过man手册或者网上查询
NAME
pow, powf, powl - power functions
SYNOPSIS
#include <math.h>
double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);
Link with -lm.
如何知道使用某个函数需要链接什么库?
还是通过man手册或者网上查询。 参考《Linux常用命令-man》。
以上代码该如何编译?
$ gcc -o main main.c -lm
以上代码使用该如何编译?
$ gcc -o main main.c -lm
以下方式能编译过吗?为什么?
$ gcc -lm -o main main.c
-lm在前,里面将会被认为没有符号被需要。参考《如何自制静态库》
如何查看程序链接了哪些动态库?
$ ldd main
linux-vdso.so.1 => (0x00007ffc97fdf000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc1aadc1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc1aa9f7000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc1ab0ca000)
参考《Linux常用命令-开发调试篇》。