栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

一、gcc使用总结

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一、gcc使用总结

1 基本概念

  gcc是linux系统集成的编译器。在linux环境下编辑程序,首先需要克服的便是没有集成开发环境的一键式操作所带来的麻烦。这其中涉及命令行操作、编译选项的设定、文件依赖关系的书写(makefile)等问题。(若编译C++文件,则只需将下列命令的gcc换为g++,源文件的后缀应为 .c/.cpp/.c++/.cc等)。

2. GCC编译过程
gcc -E test.c -o test.i # 预处理
gcc -S test.i -o test.s # 汇编
gcc -c test.s -o test.o # 编译
gcc test.o -o test      # 链接
3 常用参数 3.1 Gcc编译过程基本参数总结
-E 
-S 
-c 
-o filename 
-v 
3.2 创建静态库

  Linux静态库命名规范,必须是lib[your_library_name].a,lib为前缀,中间是静态库名,扩展名为.a。编译静态库一共有两个步骤。

  1. 生成目标文件 staticmath.o
  2. 使用ar工具将目标文件打包成.a静态库文件。
gcc -c staticmath.c 

ar -crv libstaticmath.a staticmath.o 
3.3 创建动态库(共享库)
  1. 生成目标文件,此时要加编译器选项 -fPIC
  2. 生成动态库
gcc -c -fPIC dmath.c
gcc dmath.o -shared -o libdmath.so

gcc dmath.c -fPIC -shared -o libdmath.so
3.4 链接库

  特别要主要的是,编译器会首先找libstaticmath.so,如果有就链接它,如果没有就找有没有静态库libstaticmath.a。编译器是优先考虑共享库的,如果希望编译器只链接静态库,可以使用 -static选项。

gcc main.c -L. -static -lstaticmath -o main 
3.5 gcc链接库参数总结
-L           
-L.          
-I           
-lstaticmath 
-static      
-fPIC        
-shared      
-lxx         

参考1:Linux下编辑、编译、调试命令总结——gcc和gdb描述

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308123.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号