`
jiajw0426
  • 浏览: 24928 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GCC动态库和静态库搜索路径

阅读更多

GCC通过-L 和-l 可以定义所使用的库,但是在实际应用中不同平台中库命名不一样,比如名字为XXX的库,在linux下叫libXXX.a,在window下可能就叫XXX.dll.对于初学者可能这个库了,可能就是找不到.命令ld可以告诉你gcc会搜索那些名字.通过命令

 

ld -l pump --verbose

 

 在执行之后再最下会发现

 

attempt to open /usr/i486-linux-gnu/lib32/libpump.so failed
attempt to open /usr/i486-linux-gnu/lib32/libpump.a failed
attempt to open /usr/local/lib32/libpump.so failed
attempt to open /usr/local/lib32/libpump.a failed
attempt to open /lib32/libpump.so failed
attempt to open /lib32/libpump.a failed
attempt to open /usr/lib32/libpump.so failed
attempt to open /usr/lib32/libpump.a failed
attempt to open /usr/i486-linux-gnu/lib/libpump.so failed
attempt to open /usr/i486-linux-gnu/lib/libpump.a failed
attempt to open /usr/local/lib/libpump.so failed
attempt to open /usr/local/lib/libpump.a failed
attempt to open /lib/libpump.so failed
attempt to open /lib/libpump.a failed
attempt to open /usr/lib/libpump.so failed
attempt to open /usr/lib/libpump.a failed
ld: cannot find -lpump

 

从中可以看到GCC搜索那些类库.通过-L可以设置优先搜索的路径

 

$ ld -L /home/javen/pump  -l pump --verbose
attempt to open /home/javen/pump/libpump.so failed
attempt to open /home/javen/pump/libpump.a failed
attempt to open /usr/i486-linux-gnu/lib32/libpump.so failed
attempt to open /usr/i486-linux-gnu/lib32/libpump.a failed
attempt to open /usr/local/lib32/libpump.so failed
attempt to open /usr/local/lib32/libpump.a failed
attempt to open /lib32/libpump.so failed
attempt to open /lib32/libpump.a failed
attempt to open /usr/lib32/libpump.so failed
attempt to open /usr/lib32/libpump.a failed
attempt to open /usr/i486-linux-gnu/lib/libpump.so failed
attempt to open /usr/i486-linux-gnu/lib/libpump.a failed
attempt to open /usr/local/lib/libpump.so failed
attempt to open /usr/local/lib/libpump.a failed
attempt to open /lib/libpump.so failed
attempt to open /lib/libpump.a failed
attempt to open /usr/lib/libpump.so failed
attempt to open /usr/lib/libpump.a failed
ld: cannot find -lpump

 当然了第一个被搜索道德库会被利用,当在搜索路径中放入库是则会

attempt to open /home/javen/pump/libpump.so failed
attempt to open /home/javen/pump/libpump.a succeeded
 

 

 

分享到:
评论

相关推荐

    Linux下Gcc生成和使用静态库和动态库详解

    ### Linux下Gcc生成和使用静态库和动态库详解 #### 一、基本概念 **1.1 什么是库** 库本质上是一种可执行代码的二进制形式,它可以被操作系统载入内存执行。无论是Windows还是Linux平台,都广泛地使用着库。然而...

    gcc生成静态库和动态库

    ### gcc生成静态库和动态库 #### 一、概述 在Linux环境下,开发人员经常需要创建和使用静态库和动态库。这两种类型的库都用于封装一组功能或接口,以便其他程序能够重用这些代码,从而简化开发过程并提高代码复用...

    linux gcc生成动态库和静态库

    ### Linux GCC 生成动态库与静态库详解 #### 一、基本概念 1.1 **什么是库** 在软件开发领域,库是指预先编写并编译好的...以上便是关于如何在Linux环境下使用GCC生成静态库和动态库的详细介绍,希望对您有所帮助。

    gcc静态库与动态库生成

    在嵌入式开发领域,了解如何使用gcc工具链来构建和管理静态库(`.a`文件)与动态库(`.so`文件)是非常重要的。本文将详细介绍如何通过gcc创建这两种类型的库,并讨论它们各自的用途、优缺点以及在实际项目中的应用...

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

    Linux 使用 GCC 生成静态库和动态库 在 Linux 系统中,使用 GCC 编译器可以生成静态库和动态库。静态库和动态库是两种不同的库类型,它们的主要区别在于代码被载入的时间不同。 静态库是在编译时被载入到可执行...

    GCC_生成静态库和动态库.pdf

    ### GCC生成静态库和动态库详解 在软件开发过程中,函数库扮演着极其重要的角色,它们不仅能够提高代码的重用性,还能有效提升程序的性能和可维护性。GCC(GNU Compiler Collection)作为广泛使用的编译器工具集,...

    linux 动态库静态库

    在Linux系统中,动态库(Dynamic Library)和静态库(Static Library)是程序开发中不可或缺的部分,它们提供了代码复用和模块化的功能。本篇文章将深入探讨这两种库的创建、使用以及它们之间的区别。 首先,我们来...

    使用gcc建立并调用静态库与动态库

    ### 使用GCC建立并调用静态库与动态库 在软件开发过程中,经常需要将一些功能模块封装成库供多个程序共享...通过以上步骤,我们可以使用GCC成功地创建并调用了静态库和动态库,这对于软件开发来说是非常有用的技能。

    boost库1.68版本Linux下编译的动态库和静态库

    6. **使用编译好的库**:在项目中使用编译的Boost库时,需要链接对应的动态库(如`-lboost_thread -lboost_system`)或者静态库,并确保库的路径被系统搜索路径(`LD_LIBRARY_PATH`或`DYLD_LIBRARY_PATH`)包含。...

    linux下用gcc生成静态库和动态库.doc

    在Linux环境下,使用GCC(GNU Compiler Collection)生成静态库和动态库是开发过程中的常见操作。静态库和动态库在程序构建和运行时各有特点,理解它们的工作原理和创建方法对于软件开发至关重要。 首先,静态库在...

    用gcc生成静态库和动态库.pdf

    这里需要注意的是,对于动态库,gcc命令会尝试在标准库路径和指定的库路径中查找库文件。 2. 直接在gcc命令中指定动态库文件名,如gcc main.c libmyhello.so -o hello。使用这种方法时,不需要使用-L选项指定库搜索...

    Linux编译动态库和静态库

    在编译目标程序时,通过`-L`指定静态库路径,然后用`-l`指定库名,程序会将库中所需的所有函数包含进来。 在给出的示例中,`time.h`和`stu.h`定义了类`Time`和`Stu`,`time.cpp`和`stu.cpp`实现了这些类的方法,`...

    GCC静态库和共享库的生成及调用

    GCC 编译器为我们提供了两种类型的库:静态库(archive,扩展名.a)和共享库(又叫动态库,扩展名.so)。无论是静态库还是共享库,都是由.o 文件创建的。每个.o 文件都包含这个编译单元的符号表。 静态库 静态库是...

    linux C 动态库和静态库生成及使用笔记

    "linux C 动态库和静态库生成及使用笔记" Linux C 动态库和静态库是两种不同的库类型,它们在生成、使用和链接时有着不同的机制和要求。下面我们将详细介绍 Linux C 动态库和静态库的生成、使用和链接机制。 一、...

    C++动态库和静态库的使用.rar

    3. **链接静态库**:在编译时,需要指定静态库路径(例如-L)和库名(例如-l),链接器会将库中的函数和变量链接到可执行文件。 二、动态库 1. **动态库的概念**:动态库在程序运行时被加载到内存中,多个程序可以...

    Linux和Unix下的动态库和静态库编写方法

    库分为静态库和动态库,它们在程序编译和运行过程中起着至关重要的作用。本文将详细讲解这两种库的编写方法,以及如何在实际项目中应用它们。 **一、静态库** 1. **创建静态库** 静态库的文件扩展名为`.a`,在...

    静态库和动态库制作和使用方法

    静态库的制作:(inc/lib/src/main.c) gcc -c src/*.c(编译src目录下的.c文件生成.o文件) ar rs libmath.a *.o(生成静态库:libmath.a(命名规则:必须以lib开头,以.a结尾,中间是库名:math)) 静态库的使用: gcc main.c -...

    gcc gdb 入门 以及合并linux静态库的方法

    本文将介绍如何使用GCC进行编译和链接,GDB的基本调试技巧,以及Linux下静态库和动态库的创建、使用和合并。 ### GCC的简单使用 **1. 创建可执行程序** - 编写源代码文件,例如`test.c`,包含主函数`main()`。 - ...

    动态库与静态库的制作

    编译时,需要指定静态库路径: ``` gcc main.c -L. -lmessage -o main `-L.`指定当前目录为库搜索路径,`-lmessage`指链接名为`message`的库。 运行生成的`main`程序,它将包含库的所有代码,即使在没有静态库的...

    CentOS7环境下编译的openssl 3.0动态库和静态库

    本资源提供了在CentOS7环境下编译的OpenSSL 3.0版本的动态库和静态库,这将对需要在该操作系统上进行安全编程或系统集成的开发者非常有帮助。 首先,让我们深入理解OpenSSL 3.0。OpenSSL 3.0是一个重大的版本更新,...

Global site tag (gtag.js) - Google Analytics