其中用到的两个选项:-Wl,-Bstatic和-Wl,-Bdynamic。这两个选项是gcc的特殊选项,它会将选项的参数传递给链接器,作为链接器的选项。比如-Wl,-Bstatic告诉链接器使用-Bstatic选项,该选项是告诉链接器,对接下来的-l选项使用静态链接;-Wl,-Bdynamic就是告诉链接器对接下来的-l选项使用动态链接。
示例:
gcc foo.c -Wl,-Bstatic-lbar -lbaz -lqux -Wl,-Bdynamic-lcorge -o foo.exe
参考:
1. http://www.dutor.net/index.php/2011/12/mix-dynamic-and-static-linking/
2. http://stackoverflow.com/questions/2954387/can-i-mix-static-and-shared-object-libraries-when-linking
相关推荐
GCC 编译动态和静态链接库 GCC 编译动态和静态链接库是 Linux 应用开发中的一个重要组件,对于嵌入式 Linux 应用开发来说尤为重要。本文将详细介绍如何在 Linux 中创建静态库和动态库,以及使用它们。 静态库 ...
### Linux下Gcc生成和使用静态库和动态库详解 #### 一、基本概念 **1.1 什么是库** 库本质上是一种可执行代码的二进制形式,它可以被操作系统载入内存执行。无论是Windows还是Linux平台,都广泛地使用着库。然而...
在Linux系统中,链接库是实现程序功能复用的关键组件,分为静态链接库和动态链接库两种类型。本文主要探讨这两种库的创建、使用及其特点。 1. 静态函数库 静态库通常以`.a`为后缀,如`libxxx.a`。在编译过程中,...
### Linux GCC 生成动态库与静态库详解 #### 一、基本概念 1.1 **什么是库** 在软件开发领域,库是指预先编写并编译好的...以上便是关于如何在Linux环境下使用GCC生成静态库和动态库的详细介绍,希望对您有所帮助。
### Linux下使用动态链接库和静态链接库的项目建立及单步调试 #### 一、动态链接库的建立和单步调试 ##### 1.1 编写用户接口文件 `datetime.h` 首先,创建了一个头文件`datetime.h`,该文件定义了两个结构体:`...
3. 编写使用动态库的测试程序,如`test.c`。 4. 在编译测试程序时,使用`-l`选项指定链接库,如`gcc test.c -lhello`。注意,库文件名前通常省略`lib`前缀和`.so`扩展名。 5. 如果库不在标准库路径中,需要使用`-L`...
链接库可以分为静态链接库和动态链接库两种,下面将详细介绍如何生成和使用这两种链接库。 一、静态链接库 静态链接库是指在编译时将库文件与目标文件链接在一起生成一个可执行文件的库。在 Linux 中,可以使用 ar...
这种特性使得静态链接的程序在不同的环境中具有更好的可移植性和独立性。 **动态库**则不同,它不会在编译阶段被嵌入到可执行文件中,而是在程序运行时根据需要动态加载。这不仅节省了磁盘空间,减少了程序的启动...
### 使用GCC建立并调用静态库与动态库 在软件开发过程中,经常需要将一些功能模块封装成库供多个程序共享...通过以上步骤,我们可以使用GCC成功地创建并调用了静态库和动态库,这对于软件开发来说是非常有用的技能。
### gcc静态库与动态库生成 在嵌入式开发领域,了解如何使用gcc工具链来构建和管理静态库(`.a`文件)与动态库(`.so`文件)是非常重要的。本文将详细介绍如何通过gcc创建这两种类型的库,并讨论它们各自的用途、优...
在软件开发过程中,经常需要使用到库文件,这些库文件可以分为两大类:静态链接库(Static Library)和动态链接库(Dynamic Library)。这两种库的主要功能都是为了重用代码,减少代码重复编写的工作量,提高软件的...
3. 在使用动态库的程序中,除了指定库路径(`-L`)和库名(`-l`),还需要确保运行环境能找到动态库,通常通过设置`LD_LIBRARY_PATH`环境变量或安装到系统默认的动态链接库路径。 4. 运行程序,如`./main`,如果...
### gcc常用参数详解 ...通过以上对GCC参数的详细介绍,我们可以更好地理解如何使用GCC来进行高效的编译和链接工作。无论是对于初学者还是高级用户来说,掌握这些参数都能极大地提高开发效率和代码质量。
在Linux系统中,C语言的库分为静态链接库和动态链接库两种类型,它们都是为了实现代码重用和模块化设计的重要工具。本篇文章将深入浅出地介绍这两种链接库的原理、创建方法以及如何在程序中使用。 一、静态链接库 ...
#### 使用动态链接库 1. **编写主程序**: `main.c`中包含与之前相同的代码。 2. **编译主程序并链接动态库**: ```bash gcc -o main main.c -L/path/to/libstr.so -lstr ``` 3. **运行程序**: 执行编译后...