[C] gcc
概述
- GNU C Compiler
流程
- 预处理,生成.i文件(中间文件,看不到)
- 编译,生成.s文件(中间文件,看不到)
- 汇编,生成.o文件
- 链接,生成可执行文件
参数
- -E:预处理
- -S:预处理,编译
- -c:预处理,编译,汇编
- -o:预处理,编译,汇编,链接
- -g:生成调试信息
- -std=c99:支持c99标准
文件
- .c:c程序源代码
- .i:c程序预处理输出,可被编译
- .h:c程序头文件
- .s:汇编语言
- .S:有c命令的汇编语言,汇编前需进行预处理
- .a:静态链库
- .so:动态链库
命令
- gcc main.c:编译链接main.c(当前目录生成a.out)
- gcc main.c -o main.out:编译链接main.c(当前目录生成main.out)
- gcc main.c -o ./out/main.out:编译链接main.c(当前目录下的/out目录生成main.out)
- gcc -c main.c:编译main.c(生成main.o)
- gcc main.o:链接main.o(生成a.out)
- gcc main.o -o main.out:链接main.o(生成main.out)
- gcc main.c libfunc.so -o app.out:将 main.c 和 libfunc.so 一起编译成 app.out
[C] gcc的更多相关文章
- VSCode调试go语言出现:exec: "gcc": executable file not found in %PATH%
1.问题描述 由于安装VS15 Preview 5,搞的系统由重新安装一次:在用vscdoe编译go语言时,出现以下问题: # odbcexec: "gcc": executabl ...
- GCC学习(1)之MinGW使用
GCC学习(1)之MinGW使用 因为后续打算分享一些有关GCC的使用心得的文章,就把此篇当作一个小预热,依此来了解下使用GNU工具链(gcc.gdb.make等)在脱离IDE的情况下如何开发以及涉及 ...
- 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 ...
- [异常解决] How to build a gcc toolchain for nRF51 on linux (very detailed!!!)
1.Install gcc-arm-none-eabi https://devzone.nordicsemi.com/tutorials/7/This link shows that developm ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- GCC 预处理、编译、汇编、链接..
1简介 GCC 的意思也只是 GNU C Compiler 而已.经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言:它现在还支持 Ada 语言.C++ 语言.Java 语言.Objective ...
- 用gcc进行程序的编译
在Linux系统上,一个档案能不能被执行看的是有没有可执行的那个权限(x),不过,Linux系统上真正认识的可执行文件其实是二进制文件(binary program),例如/usr/bin/passw ...
- gcc/linux内核中likely、unlikely和__attribute__(section(""))属性
查看linux内核源码,你会发现有很多if (likely(""))...及if (unlikely(""))...语句,这些语句其实是编译器的一种优化方式,具 ...
- Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本
如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...
- 低版本GCC程序向高版本移植的兼容性问题
将低版本gcc编译过的程序移植到高版本GCC时, 可能会出现一些兼容性问题. 原因是, 为了适应新的标准,一些旧的语法规则被废弃了. 关于这方面的一些具体资料可从该处查询. 这里只是自己遇到的其中一个 ...
随机推荐
- Androidd Studio 之多行文字跑马灯特效
•效果展示图 •参考资料 两种方法实现TextView跑马灯效果(字体横向滚动) •出现的问题 新建 Java 文件继承 TextView 时出现问题: •解决方法 不应该继承 $TextView$ ...
- Web 前端 - 优雅地 Callback 转 Promise :aw
前言 当今 ES7 标准大行其道,使用 async + await 将异步逻辑同步书写已经普及,但是却有许多旧库或旧代码尚未完全 Promise 化,急需一个小工具去挖去这代码中藓疾. 设计和实现 由 ...
- 201871030109-韩诚 实验一 软件工程准备—Blog
项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 软件工程准备-Blog 我的课程学习目标 (1)学习博客园软件开发者学习社区使用技巧和经验(2) 掌握软件工程导论这门课程的基础理论知识 ...
- SpringBoot(九篇)
(一) SpringBootCLI安装 (二)SpringBoot开发第一个应用 (三)SpringBoot pom.xml配置文件详解 (四)SpringBoot起步依赖Starters详解 (五) ...
- Kafka分片存储、消息分发和持久化机制
Kafka 分片存储机制 Broker:消息中间件处理结点,一个 Kafka 节点就是一个 broker,多个 broker 可以组成一个 Kafka集群. Topic:一类消息,例如 page vi ...
- linux系统调用号查询(pwn)
做pwn题时遇到程序使用了64位系统调用号:59和15,这里做一下记录 在线查询链接:https://syscalls.w3challs.com/ 分为32位和64位,链接中还有arm.mips等架构 ...
- k8s kubernetes 集群 证书更新操作
转载自https://www.cnblogs.com/kuku0223/p/12978716.html 1. 各个证书过期时间 /etc/kubernetes/pki/apiserver.crt #1 ...
- IDEA 2021版新建Maven、TomCat工程
目录 2021版IDEA中Maven.TomCat配置 1.基于Webapp创建一个Maven项目 1.1 新建项目模板 1.2 指定名称 1.3 指定信息 1.4 指定Maven地址 1.5 构建成 ...
- misdirection靶机work_through
web打点 nmap扫描 Nmap scan report for 192.168.218.135 Host is up (0.000014s latency). Not shown: 65531 c ...
- 【Java基础】ConcurrentHashMap为什么不能存null键和null值
代码如下 /** * 测试ConcurrentHashMap null键和null值的问题 * @return */ @RequestMapping(value = "/get_nacos& ...