gcc -lm 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11743/showart_58659.html
我在IBM RS6000 AIX5.1下,用gcc2.95.3升级至gcc3.0.2,configure时没问题,但make时出现如下问题: Collect2: /lib/libld.a: not a COFF file(其中 /lib/libld.a文件已通过/usr/ccs/lib/libld.a链接) 还有我用gcc2.95.3设置mysql-3.23.53,执行configure时出现如下问题: No curses/termcap library found 哪位大侠能帮个忙,谢谢!
使用math.h中的函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(通常在/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。本书用到的大部分库函数(例如printf)位于libc.so库文件中,以后称为libc,使用libc中的库函数在编译时不需要加-lc选项,当然加了也不算错,因为这个选项是gcc默认的。关于头文件和函数库目前理解这么多就可以了,以后再详细解释。 ...
在一个工程里用到了openssl的两个不同版本的库,一个静态库,一个动态库(应该是优先调用动态库),分别被两个不同的模块用到,使用中出错,使用静态库的模块会跑去调用动态库里的函数,现在想用-Wl,-rpath来指定静态库路径 在Makefile中是这样写的 $(TARGET): -$(RM) $@ $(LXX) -Wl,-rpath $(LIBDIR) -L$(LIBDIR) -o $@ $(LDFLAG) $(LIBS)//LXX=g++ mipsel-uclibc-strip $(TARGET) $(LIBDIR)是静态库所存...
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了 好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我...
我们在编写linux下的C程序时,经常会使用一些常用函数和某些操作,那么我们就会想到为什么不把他制作成一个库文件,用时只需调用就可以了,对,是可以的!linux跟我们提供了便捷的操作实现这一功能!我们可以轻松制作自己的函数库!接下来让我来说linux的动态库是怎么创建的! 首先在你的当前目录(或者其他目录)编写一个autolib.c文件: //fliename autolib.c #include void println(char *str) { printf("%s\n",str)...
有3个文件,helper.c helper.h howdy.c ,代码如下:
helper.h
void msg(void) ;
void a(void) ;
helper.c
#include "helper.h"
#include