查看静态库.a文件包含的内容用下面的命令解压:

 ar x libgdal.a

然后就可以查看文件了:

ls
adler32.o cpl_recode.o dted_create.o gdalpamrasterband.o geo_write.o nitfimage.o tif_fax3sm.o tif_tile.o
compress.o cpl_recode_stub.o dted_ptstream.o gdalproxydataset.o gt_citation.o nitfwritejpeg_12.o tif_float.o tif_version.o
cpl_atomic_ops.o cplstringlist.o gdalallregister.o gdalproxypool.o gt_overview.o nitfwritejpeg.o tif_flush.o tif_vsi.o
cpl_base64.o cpl_string.o gdalallvalidmaskband.o gdalrasterband.o gt_wkt_srs.o overview.o tif_getimage.o tifvsi.o
cpl_conv.o cplstring.o gdalcolortable.o gdalrasterblock.o infback.o rasterio.o tif_jpeg_12.o tif_warning.o
cpl_csv.o cpl_strtod.o gdaldataset.o gdal_rat.o inffast.o rpftocfile.o tif_jpeg.o tif_write.o
cpl_error.o cpl_time.o gdaldefaultasync.o gdal_rpcimdio.o inflate.o tif_aux.o tif_luv.o tif_zip.o
cpl_findfile.o cpl_vsil.o gdaldefaultoverviews.o geo_extra.o inftrees.o tif_close.o tif_lzma.o trees.o
cpl_getexecpath.o cpl_vsil_readahead_reader.o gdaldllmain.o geo_free.o jpgdataset_12.o tif_codec.o tif_lzw.o uncompr.o
cplgetsymbol.o cpl_vsil_sparsefile.o gdaldrivermanager.o geo_get.o jpgdataset.o tif_color.o tif_next.o vsidataio.o
cpl_hash_set.o cpl_vsil_stdin.o gdaldriver.o geo_names.o libgdal.a tif_compress.o tif_ojpeg.o xtiff.o
cpl_http.o cpl_vsil_subfile.o gdalmajorobject.o geo_new.o libgdal.so tif_dirinfo.o tif_open.o zutil.o
cplkeywordparser.o cpl_vsil_unix_stdio_64.o gdal_misc.o geo_normalize.o libogr.a tif_dir.o tif_packbits.o
cpl_list.o cpl_vsi_mem.o gdalmultidomainmetadata.o geo_print.o mgrs.o tif_dirread.o tif_pixarlog.o
cpl_minixml.o cpl_vsisimple.o gdalnodatamaskband.o geo_set.o nitfaridpcm.o tif_dirwrite.o tif_predict.o
cpl_multiproc.o cpl_xml_validate.o gdalnodatavaluesmaskband.o geo_simpletags.o nitfbilevel.o tif_dumpmode.o tif_read.o
cpl_path.o crc32.o gdalopeninfo.o geotiff.o nitfdataset.o tif_error.o tif_strip.o
cpl_progress.o deflate.o gdalpamdataset.o geo_tiffp.o nitfdes.o tif_extension.o tif_swab.o
cpl_recode_iconv.o dted_api.o gdalpamproxydb.o geotiff_proj4.o nitffile.o tif_fax3.o tif_thunder.o

自己打包静态库,还是用ar命令:

ar -rcs output/linux_debug_x64/libgdal.a build/port/obj/Debug64/*.o build/gcore/obj/Debug64/*.o build/frmts/obj/Debug64/*.o build/ogr/obj/Debug64/*.o

还可以将.a文件和.o文件一起打包:

ar -rcs output/linux_debug_x64/libgdal.a build/port/obj/Debug64/*.o build/gcore/obj/Debug64/*.o build/frmts/obj/Debug64/*.o output/linux_debug_x64/libogr.a

参数c是创建

参数s是添加索引

参数r是将后面的*.o或者*.a文件添加到目标文件中

为了兼容性,可以使用参数f,解释如下:

f   Truncate names in the archive.  GNU ar will normally permit file names of any length.  This will cause it to create archives which are not compatible with the
native ar program on some systems. If this is a concern, the f modifier may be used to truncate file names when putting them in the archive.

查看.a文件的symbols(符号),用下面的命令:

nm -g libNAME.a

会打印每个包含的文件,以及文件内的symbol。

使用Linux静态库的更多相关文章

  1. linux静态库的生成与使用(转)

    linux静态库的生成与使用(转) 库是一种软件组件技术,库里面封装了数据和函数. 库的使用可以使程序模块化. Windows系统包括静态链接库(.lib文件)和动态链接库(.dll文件). Linu ...

  2. Linux静态库生成指南

    Linux静态库生成指南   Linux上的静态库,其实是目标文件的归档文件.在Linux上创建静态库的步骤如下: 写源文件,通过 gcc -c xxx.c 生成目标文件. 用 ar 归档目标文件,生 ...

  3. Linux 静态库(.a)转换为动态库(.so)

    Linux 静态库转换为动态库 参考 http://blog.csdn.net/moxuansheng/article/details/5812410 首先将.a文件转为.so文件是可以实现的 原因是 ...

  4. 关于Linux静态库和动态库的分析

    关于Linux静态库和动态库的分析 关于Linux静态库和动态库的分析 1.什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可运行代码的二进制形式.能够被操作系统加 ...

  5. Linux静态库和共享库

    1.什么是静态库静态库类似windows中的静态lib 关于windows中的静态lib,可参考 Windows动态链接库DLL 特点:包含函数代码声明和实现,链接后所有代码都嵌入到宿主程序中. 只在 ...

  6. Linux静态库和动态库

    Linux 工具 ❑ GCC: The GNU Compiler Collection, containing the GNU C compiler❑ G++: A C++ compiler, inc ...

  7. Linux 静态库与动态库搜索路径设置详解【转】

    原文地址:http://blog.chinaunix.net/uid-29025972-id-3855495.html 1. 连接和运行时库文件搜索路径的设置 库文件在连接(静态库和共享库)和运行(仅 ...

  8. Linux 静态库和动态库 使用说明

        Linux下程序运行中,有两种库,静态库和动态库.     静态库:名字一般为libxxx.a,编译时会整合到可执行程序中,优点是运行时不需要外部函数库支持,缺点是编译后程序较大,一旦静态库改 ...

  9. 详细讲解 关于Linux静态库和动态库的分析

    基本概念 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: ...

  10. Linux 静态库与共享库的使用

    申明: 正如题如示,本篇讲的是Linux下是静态库与共享库,而Window下的动态链接库详细情况可见这篇文章:windows动态链接库 DLL 浅析.虽然原理,思想差不多,但是细节却各有不同. 一.静 ...

随机推荐

  1. C#实现文件批量重命名源码下载

    本文要实现的功能是 文件批量重命名,当选择一个文件夹时,通过操作可以把文件夹下面所有文件进行重命名.建立了HoverTreeBatch项目. 然后 定义文件夹信息: DirectoryInfo _Th ...

  2. JS操作JSON的方法总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  3. Java学习之利用集合发牌小练习

    /* * 思路: * A:创建一个HashMap集合 * B:创建一个ArrayList集合 * C:创建花色数组和点数数组 * D:从0开始往HashMap里面存储编号,并存储对应的牌同时往Arra ...

  4. 一个原生js写的加减乘除运算

    根据我的经验我说的再多也没人看,不过还是简单介绍下效果吧,可以选择+,-,*,/,去计算数据,喜欢的话就粘贴复制自己看去吧! <!DOCTYPE html PUBLIC "-//W3C ...

  5. PHP中include和require的区别

    include和require的区别,其实两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出. 根据测试,win32 ...

  6. NodeJS 从0开始

    查看Node 基本配置$ npm config ls -l $npm help install将展开install的help文档 初始化目录 npm init 根据提示完成 将生成package.js ...

  7. The EF 6.x DbContextGenerator templates are not available for VS2010

    问题描述:采用VS2010.MVC3.EF6.1.1,并使用Model first的方式建立数据模型,创建了edmx文件.在edmx文件设计界面上,通过点选鼠标右键,Generate Database ...

  8. C#实现大数据量TXT文本数据快速高效去重

    原文 C#实现大数据量TXT文本数据快速高效去重 对几千万的TXT文本数据进行去重处理,查找其中重复的数据,并移除.尝试了各种方法,下属方法是目前尝试到最快的方法.以下代码将重复和不重复数据进行分文件 ...

  9. 在 Windows Azure 网站中配置动态 IP 地址限制

    我们最近对 Windows Azure 网站进行了升级,并启用了IIS8的动态 IP 限制模块.现在,开发人员可以为其网站启用并配置动态 IP 限制功能(或简称 DIPR). 可以通过以下链接查看此 ...

  10. oracle 11g RAC Grid Infrastructure

    grid infrastructure 软件介质下载: http://www.oracle.com/technetwork/database/database-technologies/cluster ...