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

初学automake 关于静态库包含静态库的问题

    来源: 互联网  发布时间:2017-05-23

    本文导语:  现在我要生成一个libPlatform.a的静态库,这个库又依赖于两个第三方的静态库libuuid.a libiconv.a 以下是Makefile.am的代码 ## Process this file with automake to produce Makefile.in lib_LIBRARIES  = libPlatform.a AM_CPPFLAGS=-I../Includes AM_LD...

现在我要生成一个libPlatform.a的静态库,这个库又依赖于两个第三方的静态库libuuid.a libiconv.a
以下是Makefile.am的代码
## Process this file with automake to produce Makefile.in

lib_LIBRARIES  = libPlatform.a

AM_CPPFLAGS=-I../Includes
AM_LDFLAGS = -lpthread -ldl -lrt

libPlatform_a_SOURCES= Lin/CMonitoredSection.cpp 
    Lin/COsDirectory.cpp 
    Lin/COsLog.cpp 
    Lin/COsSemaphore.cpp 
    Lin/COsSocket.cpp 
    Lin/COsSystemTime.cpp 
    Lin/COsThread.cpp 
    Lin/CSerialPort.cpp 
    Lin/Platform.cpp 
    Lin/PlatformFS.cpp 
    Lin/stdafx.cpp 
    stdutil.cpp 
    Lin/COsGuid.cpp 
    Lin/COsLibrary.cpp 
    Lin/PlatformString.cpp 
    Lin/COsAdapter.cpp 
    Lin/COsMailbox.hpp 
    Lin/LinPlatform.h 
    Lin/PlatformFS.h 
    Lin/PlatformStdio.h 
    Lin/stdafx.h 
    Lin/targetver.h 
    CMonitoredSection.h 
    COsDirectory.h 
    COsGuid.h 
    COsLibrary.h 
    COsLog.h 
    COsMailbox.h 
    COsSemaphore.h 
    COsSerial.h 
    COsSocket.h 
    COsSystemTime.h 
    COsThread.h 
    CSerialPort.h 
    platform.h 
    stdutil.h 
    PlatformString.h 
    COsAdapter.h 

##libPlatform_a_LDFLAGS =
##libPlatform_so_LDFLAGS = -fPIC -shared
libPlatform_a_LIBADD=../Libs/Lin/libuuid.a   ../Libs/Lin/libiconv.a
libPlatform_a_CXXFLAGS=-DLINUX -DLIBICONV_STATIC

其中两个第三方库是放在../Libs/Lin/中,头文件是放在../Includes中
执行make以后,最后能生成libPlatform.a
打印的信息是
ar cru libPlatform.a libPlatform_a-CMonitoredSection.o libPlatform_a-COsDirectory.o libPlatform_a-COsLog.o libPlatform_a-COsSemaphore.o libPlatform_a-COsSocket.o libPlatform_a-COsSystemTime.o libPlatform_a-COsThread.o libPlatform_a-CSerialPort.o libPlatform_a-Platform.o libPlatform_a-PlatformFS.o libPlatform_a-stdafx.o libPlatform_a-stdutil.o libPlatform_a-COsGuid.o libPlatform_a-COsLibrary.o libPlatform_a-PlatformString.o libPlatform_a-COsAdapter.o ../Libs/Lin/libuuid.a   ../Libs/Lin/libiconv.a
ranlib libPlatform.a


但执行nm libPlatform.a时,提示:
nm: libuuid.a: 不可识别的文件格式
nm: libiconv.a: 不可识别的文件格式

而第三方库中的函数也是未定义状态,如
         U libiconv
         U libiconv_close
         U libiconv_open
         U uuid_generate

请问我在Makefile.am中缺了什么参数吗?我把这个项目编译成libPlatform.so的话,是能成功链接的。

|
you can't archive .a in a .a. In other words, you can't put an archive (static lib) into another archive.

../Libs/Lin/libuuid.a   ../Libs/Lin/libiconv.a

Archive file is for containing object file only...

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 初学 java 的朋友来和我交朋友,我也是初学。我的 QQ 号是 33555085
  • 又一个初学者的困惑!如果您是个大虾,请你一定要进来看看,指点迷津!如果您也是个初学者,那么您也一定要进来,也许我们有一样的遭遇!
  • 初学者的问题我是linux初学者,我想问一下在windows里下载的大于1.44M文件如何转移到linux分区里?
  • 我是个初学者,希望指点明津
  • 初学者用什么工具好?JBUILDER?JDK?
  • 对于初学者应该看什么样的java书籍
  • 初学者:不是问题的问题? iis7站长之家
  • 初学linux看哪本书好?
  • 初学java,该看那些书,请朋友们指教
  • 我是初学者,该用什么java的“编译器”????
  • 初学java什么书好?
  • 对于初学者应该看什么样的书
  • 初学者:不是问题的问题?
  • 初学者这样检验自己的学习效果呢?
  • 初学JAVA,用哪个软件来调试和编译程序?
  • 初学者的问题??在线等待。
  • 各位高手大家好,我是初学LINUX想请教几个问题
  • 初学者的疑问
  • 从初学Linux到内核开发
  • 初学java的话,从何入手呢?vj++,还是jbuilder?


  • 站内导航:


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

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

    浙ICP备11055608号-3