当前位置:  技术问答>linux和unix

能否把一些静态库文件(.a)和.o文件一起打包成一个静态库文件?

    来源: 互联网  发布时间:2017-01-13

    本文导语:  各位高手,想请教各位一个问题:  我现在手头上有两个 libs1.a,libk1.a 这两个静态库文件, 然后我再写了一个 hh.cpp文件调用了这两个静态库的一些函数, 最后用  ar cr my.a libs1.a libk1.a  hh.o    这个语句生成了my.a文...

各位高手,想请教各位一个问题:

 我现在手头上有两个 libs1.a,libk1.a 这两个静态库文件,
然后我再写了一个 hh.cpp文件调用了这两个静态库的一些函数,
最后用 
ar cr my.a libs1.a libk1.a  hh.o    这个语句生成了my.a文件,
同时也用

g++ -fPic -shared  -o my.so hh.o libs1.a libk1.a  -pthread 生成了my.so文件.

可惜的是当我使用这个my.a 跟一个测试cpp连接时,编译时发现会出现以下的错误:
my.a:  undefined reference to "Func1(int i)"  这样的错误,其中 Func1是libs1.a
所提供的函数.

但是我使用my.so跟测试cpp去进行编译,就没有报任何错误的.

想请教各位,怎么去用一些.a文件和.o文件去生成一个.a文件?怎么避免我所遇到的这个问题?





|
ar cr my.a libs1.a libk1.a  hh.o
========
这样有点问题吧,
建议先把libs1.a 和 libk1.a中的.o解出来,然后再加到my.a中

mkdir libs1 libk1
(cd libs1; ar x ../libs1.a)
(cd libk1; ar x ../libk1.a)
ar cr my.a libs1.a/*.o libk1/*.o hh.o

|
所我所知,ar就是干这个的。
先编译成o文件,再用ar添加到之前的.a文件中。

我感觉你的参数有问题,你尝试一下去掉c,看看警告。
或者将r换成q ?

|


支持这样的做法

|
3楼正解
字数不够

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • windows 下能否查看以rpm形式打包的源代码?
  • JSP能否访问Excel?JDBC吗?
  • IBM 346服务器上能否安装 liunx AS 4(up1),
  • USB设备,这样的想法能否实现
  • MySQL里Create Index 能否创建主键 Primary Key
  • 用java能否开发图形报表程序
  • 请问JBulider 4的序列号谁知到?能否提供给小弟?谢谢
  • java 对树的操作,TreeSet,能否插入相同的数据,如果相同,如何解决
  • 提问,关于能否在Canvas上面写文本
  • 能否介绍几本Java的好书
  • Apache 1.3.20和Tomcat 4能否结合起来?
  • jad 能否带子目录反编译?
  • java能否动态开辟string数组?
  • 各位大虾,能否告知JAVA的核心思想
  • 大家能否JBUILDER的使用技巧?
  • Kylix能否在红旗linux下用?
  • applet能否直接连数据库?
  • win2000和sco unix能否装在一个硬盘上?
  • 不知到在JAVA中能否实现下列功能:
  • 请问我的主版能否用LINUX?
  • 在Windows操作系统下能否实现X-Client?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3