当前位置: 技术问答>linux和unix
新手上路!请问如何在unix操作系统上编写带头文件的C程序呢?
来源: 互联网 发布时间:2015-10-21
本文导语: 我写了这样一个简单的C程序: #include "math.h" 或者 main() { float x=1,y; y=fabs(x); printf("%fn",y); return 0; } 在unix操作系统下运行,编译时却出现“/usr/ccs/bin/ld: Unsatisfied symbols fabs(code)”的错误信息 显然是不认识fabs()函...
我写了这样一个简单的C程序:
#include "math.h" 或者
main()
{
float x=1,y;
y=fabs(x);
printf("%fn",y);
return 0;
}
在unix操作系统下运行,编译时却出现“/usr/ccs/bin/ld: Unsatisfied symbols fabs(code)”的错误信息
显然是不认识fabs()函数,请问这函数为什么不能调用呢?
如果我改变fabs()为sqrt() 也不行。看来是无法调用数学库里的函数。请高手帮帮我,怎样能调用头文件里的函数呢?
#include "math.h" 或者
main()
{
float x=1,y;
y=fabs(x);
printf("%fn",y);
return 0;
}
在unix操作系统下运行,编译时却出现“/usr/ccs/bin/ld: Unsatisfied symbols fabs(code)”的错误信息
显然是不认识fabs()函数,请问这函数为什么不能调用呢?
如果我改变fabs()为sqrt() 也不行。看来是无法调用数学库里的函数。请高手帮帮我,怎样能调用头文件里的函数呢?
|
gcc filename.c -lm
|
仅仅有头文件,只是告诉程序有这么一个东东你可以使用。
至于具体使用时到哪儿取,可就要用到库这个东东了。
-l 就是编译时链接库的意思
-lm 告诉编译器有一个叫做m的库,名称只是库文件名称的一部分,但是根据一定的约束编译器可以找到这个库的位置并连编进你的最终可执行文件中。
至于具体使用时到哪儿取,可就要用到库这个东东了。
-l 就是编译时链接库的意思
-lm 告诉编译器有一个叫做m的库,名称只是库文件名称的一部分,但是根据一定的约束编译器可以找到这个库的位置并连编进你的最终可执行文件中。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。