查看静态库.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. BZOJ 1901: Zju2112 Dynamic Rankings( 树状数组套主席树 )

    裸的带修改主席树.. 之前用BIT套Splay( http://www.cnblogs.com/JSZX11556/p/4625552.html )A过..但是还是线段树好写...而且快(常数比平衡树 ...

  2. SGU题目总结

    SGU还是个不错的题库...但是貌似水题也挺多的..有些题想出解法但是不想写代码, 就写在这里吧...不排除是我想简单想错了, 假如哪位神犇哪天发现请告诉我.. 101.Domino(2015.12. ...

  3. [C#参考]UI和线程(一)

    Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程. 什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包 ...

  4. Codeforces Round#2

    A. Winner 题目大意:一些人在玩游戏,给出n次某人获得的分数,现在请计算出胜者,如果不止一个最高分,则取最先达到该分数的人. 题解:模拟得分过程,首先计算出最高分,然后获取先到达或超过最高分的 ...

  5. 补丁(patch)的制作与应用

    命令简介 用到的两个命令是diff和patch. diff diff可以比较两个东西,并可同时记录下二者的区别.制作补丁时的一般用法和常见选项为: diff [选项] 源文件(夹) 目的文件(夹) - ...

  6. jquery简单判断PC端还是移动端

    $(function(){ if (!navigator.userAgent.match(/mobile/i)) { //PC端 }else{ //移动端 } })

  7. C# 动态载入Dll

    1.新建測试dll及方法,用vs2010新建winform程序,详细代码例如以下: using System; using System.Collections.Generic; using Syst ...

  8. docker基础入门之二

    一.docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和ke ...

  9. (转)CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  10. java的IO流包装不当导致从网页获取的数据出现乱码

    从网页上获取数据时必须要注意字符集的问题.处理不慎确实苦不堪言. 例如通过URL连接时,将字节流InputStream包装成字符流(以便直接存为String)时,一定要注意加上charsetName这 ...