日期:2014-05-16  浏览次数:20763 次

关于静态链接PCRE库
现在正在开发一个c程序,使用pcre库来实现正则表达式的功能。因为客户系统中不一定有libpcre库存在,所以需要静态链接pcre库。我编译安装pcre(configure时使用了enable-static和disable-dynamic)后,编译自己的应用程序时添加了-l/use/local/lib/libpcre.a参数。但是运行时程序提示找不到libpcre.so文件。

非常奇怪为什么会有这样的错误。以前使用libjpeg时也有同样的问题,就是静态链接无效,程序好像还是动态链接到相应的运行库。搜索了一下也没找到解决的办法。

求大虾给个帮助,谢谢了

------解决方案--------------------
引用:
Quote: 引用:

你确定你连接的是静态库么?

看提示信息是你连接的是动态库.so文件找不到的!


编译时使用了-l libpcre.a了啊,我再仔细查查看
 

安装了的话,直接就好了!
-lpcre 

如果还是不行的话,
把libpcre.a移到当前目录下
 -L ./libpcre.a 
------解决方案--------------------
连接某个具体的文件,是不需要同时使用-l和具体文件名的。
使用方法:
法一: /use/local/lib/libpcre.a
法二:-L/usr/local/lib -lpcre

一般静态连接似乎得用-static选项!