静态编译(二)
来源:互联网 发布:软件包装盒 编辑:程序博客网 时间:2024/06/14 15:34
在上篇《FreeBSD 静态链接问题》中还有一个遗留问题,即确定一个静态库调用了其它什么库呢?google的结果令人失望,唯一的结果libtool脚本,没用过,看不懂,没google到使用方法,只好用了个笨办法。
问题源于CSDN的一篇帖子http://community.csdn.net/Expert/TopicView.asp?id=5630522
简单的说,就是需要静态链接libpqxx和libpq,帖子主人发现问题所在:使用libtool生成的库,通常会带一个.la的文件说明文件,说明库的名称、要求的库、版本和安装路径,libpqxx.la内容如下:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
libpqxx要求libpq,可是找不到一个libpq.la的文件,静态链接总是失败。用objdump -t libpq.so检查的libpq.so符号显示no symbols,strip过的,查看libpq.a会逐显示libpq.a里的.o文件的符号,不容易确定那些是真正的外部符号,实在没有办法了,只好解开libpq.a,然后重新链接成.so文件,就可以用objdump -t 看看有哪些外部符号了,终于确定了libpq 调用的函数库,libpqxx终于可以静态链接到应用程序了。下面是编译libpqxx中的测试程序的一个Makefile
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
系统信息:
FreeBSD 5.4-RELEASE
gcc version 3.4.2 [FreeBSD] 20040728
postgresql-client-7.4.17
postgresql-libpqxx-2.6.9
这个办法很麻烦,在库很多,的情况下,工作量很大,甚至于无法完成,期待好方法出现!
- 静态编译(二)
- makefile学习经验(二)----编译生成静态库文件
- makefile学习经验(二)----编译生成静态库文件
- 编译与链接(二)——静态链接
- C++编译连接总结(二)--自己的静态库动态库的编译与引用
- 静态编译(一)
- Mac OS 下手动编译静态库及Xcode中使用该静态库的例子(二)
- 静态路由(二)
- C++应用程序在Windows下的编译、链接:第三部分 静态链接(二)
- C++应用程序在Windows下的编译、链接:第三部分 静态链接(二)
- Qt编译生成静态库(静态编译)
- Qt编译生成静态库(静态编译)
- 用cmake 编译 xcode用的clucene静态库(二)
- 静态编译
- (二)静态链表
- ffmpeg编译(二)
- 编译原理(二)
- 静态编译TClientDataset(midas.dll)
- IT部门KPI
- 把Xml转换成DataTable
- 【最大生成树】POJ 2377
- 静态编译(一)
- Linux内核中的PID散列表实例
- 静态编译(二)
- install python, django, eclipse pydev plugin in windows
- structs2标签
- UINavigationItem表示UINavigationBar中的控件
- UINavigationController Tutorial
- Java基础第二讲:Java基本语法(一)
- 【HDU1072】Nightmare,思路+解题报告+代码
- JSF文件下载的不同实现
- 【poj1164】The Castle,解题报告+思路+代码+数据