技巧:Linux 动态库与静态库制作及使用详解
两个要知道的基本知识 Linux 应用程序因为 Linux 版本的众多与各自独立性,在工程制作与使用中必须熟练掌握如下两点才能有效地工作和理想地运行。 Linux 下标准库链接的三种方式(全静态 , 半静态 (libgcc,libstdc++), 全动态)及其各自利弊。 Linux 下如何巧妙构建 achrive(*.a),并且如何设置链接选项来解决 gcc 比较特别的链接库的顺序问题。 三种标准库链接方式选项及对比 为了演示三种不同的标准库链接方式对最终应用程序产生的区别, 这里用了一个经典的示例应用程序 HelloWorld 做演示,见 清单 1 HelloWorld 。 整个工程可以在文章末尾下载。 清单 1. HelloWorld #include <stdio.h> #include <iostream> using std::cout; using std::endl; int main(int argc, char* argv[]) { printf("HelloWorld!(Printed by printf)\n"); cout<<"HelloWorld!(Printed by cout)"<<endl; return 0; } 三种标准库链接方式的选项及区别见 表 1 表 1. 三种标准库链接方式的选项及区别 标准库连接方式 示例连接选项 优点 缺点 全静态