在 GCC 中使用 math.h
最近在学习算法设计课程,需要写一些 c 程序。算法作业免不了要用到 math.h 库:
#include <math.h>
但是在 Linux GCC 环境下一编译就会出现类似如下的错误:
make all
Building target: SAT
Invoking: GCC C Linker
gcc -o"SAT" ./src/SAT.o
./src/SAT.o: In function `main':
/home/mutoo/workspace/c/SAT/Debug/../src/SAT.c:38: undefined reference to `pow'
原来是因为 math库被放在了动态链接库中,如果程序中需要用到它,在链接时需要加上 -lm 命令:
$ gcc filename.c -lm -o filename
其中 -lm
就是 math 库。 另外,对于 Eclipse CDT 的用户,可以进行如下配置
- 选择菜单:Project > Properties…
- 在对话框左边找到:C/C++ Build > Settings
- 在对话框右边找到:Tool Settings > GCC Linker > Libraries
- 单击 Libraries(-l) 边上的 [+] 号,增加一项
m
接下来就可以正常使用 math 库了。