C Linux 下的编译

本文简要介绍了 C 语言的编译命令。

Hello World!

#include <stdio.h>

int main()
{  
     printf("Hello World!\n");
     return 0;
}

基本编译命令

$ gcc a.c
# 生成 a.out
$ ./a.out

多个文件分而治之

//声明
# include “max.c”
# 不声明,会发生警告信息
$ gcc max.c hello.c -o main.out
# 声明
$ gcc hello.c

头文件与函数定义分离

不经常变动的函数 生成静态库

$ gcc -c max.c -o max.o
# hello.c 声明去掉
$ gcc max.o hello.c
# 可以将文件写为 头文件
$ gcc max.o min.o hello.c

Makefile

# 注释
hello.out:max.o min.o hello.c
        gcc max.o min.o hello.c -o hello.out
max.o:max.c
        gcc -c max.c
min.o:min.c
        gcc -c min.c

指针与内存

gdb 工具

$ gcc -g main.c -o main.out
$ gdb ./main.out

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

Java并发编程的艺术(五)——中断

什么是中断? 在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的机制——中断。 中断...

37470
来自专栏技术之路

名称空间

using 声明和using 编译指令 using 声明将特定的名称添加到它所属的声明区域中。 using std::cout; 将cout添加到声明区中,声明...

19570
来自专栏Java帮帮-微信公众号-技术文章全总结

hibernate延迟加载详解

hibernate延迟加载详解 Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。hiber...

32530
来自专栏chenssy

【死磕Java并发】-----Java内存模型之happens-before

在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性...

12720
来自专栏云计算教程系列

如何使用Grep

Grep是一个命令行实用程序,可以使用常见的正则表达式语法搜索和过滤文本。它无处不在,动词“to grep”已经成为“搜索”的同义词。它grep是一个有用的工具...

16530
来自专栏雪胖纸的玩蛇日常

老男孩Python全栈开发(92天全)视频教程 自学笔记03

25150
来自专栏Python专栏

python如何定时异步执行任务

37530
来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch聚合 之 Range区间聚合

Elasticsearch提供了多种聚合方式,能帮助用户快速的进行信息统计与分类,本篇主要讲解下如何使用Range区间聚合。 最简单的例子,想要统计一个班级...

27560
来自专栏L宝宝聊IT

Shell脚本应用(shell脚本基础与shell变量)

16340
来自专栏hbbliyong

Gulp使用指南

发上来好像格式都变了,有需要的可以给留言,我把为知笔记发给大家!大家如果看着费劲就拉到最后直接看图片部分! 一.基本介绍 gulp是前端开发过程中一种基于流的代...

30760

扫码关注云+社区

领取腾讯云代金券