`
me-
  • 浏览: 72893 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

有libxxx.134.a而无libxxx.134.so 出错。静态库 动态库

阅读更多

我用来编译程序的系统完整的安装了g++和libstdc++,调用了libstdc++.so.xxx,但是运行程序的系统的lib目录只有静态的libstdc++.a.xxx,没有相应的so文件。  
   
  如何在编译时指定使用静态的.a文件而不是默认的.so?   
   
编译时用-static参数。

 

动态库的应用有两个主要原因:  
  1、共享。多个程序可以使用同一个动态库  
  2、开发模式好。要求设计者对功能划分得更好  
  但动态库装载的时候慢,特别是运行中装载有明显延迟。一旦装载完毕执行起来根静态库比较慢不了。  
   
  静态库的优点:  
  代码装载速度快,执行速度略比动态库快,没有什么更多的优势。  
   
  大软件还是用动态库吧   
 

分享到:
评论

相关推荐

    静态库.a与.so库文件的生成与使用.pdf

    Linux系统中,库文件对于软件开发而言非常重要,其中常见的库文件格式有静态库(.a)和共享库(.so)两种。这两种库文件在生成和使用过程中都有其特定的步骤和方法,本文将详细介绍Linux环境下静态库和共享库的生成与...

    Linux 如何使用gcc生成静态库和动态库

    动态库的名字一般是libxxx.so.major.minor其中xxx是库名,majar是主版本号,minor是副版本号。 通过 ldd 命令可以查看程序所依赖的共享库,例如查看 vim 所依赖的共享库可以使用命令 ldd /usr/bin/vim。程序查找...

    linux静态链接库与动态链接库的区别及动态库的创建参考.pdf

    静态链接库的文件通常以`libxxx.a`的形式存在。这种方式使得程序在运行时不再依赖外部库,但会增加可执行文件的大小,并可能导致版本冲突,因为每个程序都有自己的库函数副本。 **动态链接库**(Dynamic Link ...

    linux 静态库和动态库的编写

    **动态库**,通常以`.so`(共享对象)为扩展名,如`libxxx.so`。与静态库不同,动态库在编译时并不会被合并到目标代码中,而是在程序运行时按需加载。这样可以减少可执行文件的大小,同时允许多个程序共享同一份库,...

    linux静态库及动态库创建及使用

    - **动态库**: `libxxx.so.major.minor`,其中`xxx`代表库的名称,`major`和`minor`分别代表主版本号和次版本号。 ##### 1.6 如何知道一个可执行程序依赖哪些库 可以使用`ldd`命令查看一个可执行程序所依赖的动态...

    Linux动态库.txt

    如果希望使用特定路径下的动态库,但又不具备修改 `/etc/ld.so.conf` 的权限(例如无 root 权限),可以通过设置 `LD_LIBRARY_PATH` 来实现。例如,可以通过命令 `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/lib...

    android加载gif图片的.so 文件

    这里,`libxxx.so`是我们的原生库,针对不同的CPU架构有不同的版本。 为了在Android应用中加载和播放GIF,我们需要一个支持GIF解码的库。常见的选择有以下几种: 1. **Android-Universal-Image-Loader**:这是一个...

    xcode 详解创建静态库和动态库的方法

    xcode 创建静态库和动态库 1、linux中静态库和动态库区别: 库从本质上来说是一种可...动态库:这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关

    Linux下动态和静态链接库的使用

    静态库通常以`.a`为后缀,如`libxxx.a`。在编译过程中,静态库的函数和数据会被直接嵌入到目标代码中,因此生成的可执行文件体积较大,但好处是不需要依赖外部的库文件即可运行。然而,这也意味着如果静态库更新,...

    17. Linux开发-动态静态库创建与Makefile规则.pdf

    静态库和动态库各有其特点和应用场景。动态库(.so文件)在程序运行时被加载,节省了磁盘空间,但需要在运行环境中提供相应的库文件。静态库(.a文件)则在编译时将库函数编译进目标程序,使得程序独立,不依赖运行...

    动态和静态链接库

    - 利用gcc的-shared选项和-fPIC(Position Independent Code)选项生成动态库文件,通常格式为libxxx.so,其中xxx为库名。 - 动态库可以直接通过.c文件创建,使用类似的gcc命令即可。 3. 使用静态库和动态库: - 在...

    【Linux】静态库和动态库

    静态库:库名:Libxxx.a,lib是库的前缀,xxx是库名,.a为静态库的后缀。 第一步:将需要生成静态库的.c文件转换为编译后的.o文件 命令:gcc -S mian.o mian.c 第二步:将编译完成的.o文件放到一个集合中,生成静态...

    linux静态链接库与动态链接库的区别及动态库的创建.pdf

    动态链接库更倾向于用于需要频繁更新或资源有限的环境,而静态链接库则适合于对独立性和移植性有较高要求的情况。理解这两者的差异并熟练掌握它们的创建和使用,对于Linux下的软件开发至关重要。

    解决Linux程序编译链接动态库版本的相关问题

    Linux上对动态库的命名采用libxxx.so.a.b.c的格式,其中a代表大版本号,b代表小版本号,c代表更小的版本号,我们以Linux自带的cp程序为例,通过ldd查看其依赖的动态库 $ ldd /bin/cp linux-vdso.so.1 => (0x00007...

    linux静态链接库与动态链接库的区别及动态库的创建借鉴.pdf

    Linux 静态链接库与动态链接库的区别及动态库的创建借鉴 一、引言 在 Linux 系统中,函数库的链接可以分为静态链接库和动态链接库两种。静态链接库是在编译时期完成的,所有相关的对象文件和函数库被链接合成一个...

    Linux动态库生成与使用指南

    Linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件。  在链接动态库生成可执行文件时,并不会把动态库的代码复制到执行文件中,而是在执行文件中记录对动态库的引用...

    关于在Linux平台上接静态库和共享库的使方法.docx

    这样,若用户要调用含有同名动态库文件的静态库文件,则在“-l”后需要显示地写出包含后缀名的文件名,如:要调用 libm.a 库文件时就需写作“-llibm.a”。 例如,如果你已经有一个静态库文件 libhello.a,此库文件...

    深入探讨Linux静态库与动态库的详解(一看就懂)

    动态库,以`.so`为扩展名,如`libxxx.so`。与静态库不同,动态库在编译时并不会被整合到可执行文件中,而是在程序运行时按需加载。这减少了程序的大小,因为多个程序可以共享同一动态库的内存映像。动态库的修改不会...

    Linux静态函数库的创建和使用

    Linux 系统中有两类函数库,分别是静态库和动态库。静态函数库的名字一般是 libxxx.a,利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,它的优点是编译后的执行程序不需要外部...

Global site tag (gtag.js) - Google Analytics