|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
3. 动态库和静态库
在链接过程中,gcc编译器通常会将系统库和标准函数库与编译过程中生成的obj文件链接在一起,形成一个可执行文件。这些被链接到可执行文件中的系统库和标准函数库被称为静态库。但是如果每个可执行文件都包含常用的库,那么这些可执行文件就会变得很大,造成空间的浪费。解决办法就是使用动态库。也就是说在链接过程中不再链接这些标准函数和系统函数,而是在可执行文件运行时再去动态加载。这样可执行文件的体积就会被缩小。
4. gcc链接相关选项
(1)-nostdlib
不链接系统标准库文件。当在编译裸机程序,bootloader和内核时,不需要链接系统标准库文件。需要使用-nostdlib选项
(2)-static
静态链接选项
(3)-shared
生成库文件。当要把库发布,但是又不想发布源代码就使用此命令输出一个共享库文件。
5. 如何知道可执行文件是否需要动态库
使用ldd命令可以查看一个可执行文件是否需要动态库。 |
|