GCC分布编译C++

GCC分布编译C++,通过前面几节的讲解,已经就 gcc(g++)指令可用的 -E、-S、-c 以及 -o 选项的功能和用法做了详细的讲解。

GCC编译多个文件

GCC编译多个文件,通过前面几节的学习,读者已经了解了如何使用 gcc(g++)指令调用 GCC 编译器编译(包括预处理、编译、汇编和链接)C 或者 C++ 源代码。

GCC使用动态库和静态库

GCC使用动态库和静态库,我们知道,C 和 C++ 程序从源文件到生成可执行文件需经历 4 个阶段,分别为预处理、编译、汇编和链接,本节将重点围绕链接阶段,对静态链接库和动态链接库做详细的讲解。

GCC使用静态库

GCC使用静态库,Linux 下的静态链接库是以 .a 结尾的二进制文件,它作为程序的一个模块,在链接期间被组合到程序中。和静态链接库相对的是动态链接库(.so 文件)。

GCC使用动态库

GCC使用动态库,Linux 下动态链接库(shared object file,共享对象文件)的文件后缀为 .so,它是一种特殊的目标文件(object file),可以在程序运行时被加载(链接)进来。

动态库显式调用

显式调用动态链接库的过程,类似于使用 malloc() 和 free()( C++ 中使用 new 和 delete)管理动态内存空间,需要时就申请,不需要时就将占用的资源释放。

GCC找不到库文件

GCC找不到库文件,关于 GCC 提示找不到指定库文件的这个问题,通常出现在以下两个场景中, 利用静态库或者动态库文件实现链接操作(生成可执行文件)时,GCC 可能会提示“xxx:No such file or directory”(其中 xxx 表示查找失败的静态库或者动态库)。