文章目录

一、前提

  • 以下环境均采用树莓派环境下编程
  • 想要在Linux上进行编辑,必须学会Linux基本编辑命令和其他基本命令
  • 有编程基础

二、安装编译器,并开始第一个程序

1、安装编译器gcc & g++

sudo apt-get install

2、编写第一个程序

Linux--C/C++编程入门_文件名


Linux--C/C++编程入门_g++_02


编辑完成后开始进行编译

Linux--C/C++编程入门_可执行程序_03

编译程序,c语言使用​​gcc 文件名​​​,c++使用​​g++ 文件名​​​ 编译完成后会在当前路径下生成名为a.out可执行文件,执行程序,使用​​./a.out​​ 假如我们不想系统自动生成a.out可执行文件,可以使用​​-o​​选项,例如:
​g++ main.cpp -o HelloWorld​

三、C与C++混合编程

首先我们在第二小节的基础上再次添加一个C文件程序,分别是a.ha.c

1、编辑a.h

Linux--C/C++编程入门_可执行程序_04


2、编辑a.c

Linux--C/C++编程入门_g++_05


3、在main.cpp中调用​​testC()​​函数

Linux--C/C++编程入门_可执行程序_06


4、再次使用g++编译程序

Linux--C/C++编程入门_g++_07


按之前的操作进行编译,可以看到报错了,提示testC没有定义,这是因为我们使用了​​a.c​​​中的函数,但是并没哟对​​a.c​​​进行编译,那么我们只需使用g++将​​a.c​​编译一次就可以了

Linux--C/C++编程入门_文件名_08

四、编译

众所周知,程序的执行顺序是:编译->链接->运行

如果我们直接采用​​g++ 加文件名​​是会同时完成编译和链接的,我们也可以使用g++的参数来分步完成编译和链接。

1、g++ ​​-c​​​(compile)编译,生成​​.o​​文件

2、g++ *.o对编译后的文件进行链接,生成可执行程序

3、通过​​ldd 可执行程序​​可以看到该可执行程序所链接的库

4、最后通过​​./程序名​​运行程序

Linux--C/C++编程入门_可执行程序_09

五、编写makefile

从前面可知通过命令
g++ -c *即可编译程序
g++ *.o即可链接文件,生成可执行程序
那么当我们的程序非常庞大的时候,​​​.cpp、.c​​​文件必然是很多的,如果我们还是通过一个一个g++去敲文件名的形式去编译和链接,这是非常麻烦的,那么这时候就需要引入​​makefile​​,通过该脚本,我们便可以轻松地管理我们的程序文件。

我们接着上面的程序,编写一个makefile

Linux--C/C++编程入门_文件名_10


Linux--C/C++编程入门_g++_11

  • ​makefile​​为脚本的名字
  • ​start​​​可以随便命名,这里写为​​start​​表示是程序的开始部分
  • ​start​​​后面接的​​:​​​,表示​​start​​​为可以执行的部分,可通过命令​​make start​​执行
  • g++命令前面的空白部分,注意不是空格,必须是键盘左上角部分的tab
  • 最后编译​​makefile​​​脚本,使用​​make​​命令

因为​​start:​​​为该makefile脚本的第一个可执行部分脚本代码,所以直接通过​​make​​​也可执行​​start:​​​所示部分。可以看到通过makefile脚本编译连接后的​​*.o​​文件是没有作用的了,那么我们是否有办法将其删除呢?当然是可以的,只需修改makefile文件就可以,如下:

Linux--C/C++编程入门_文件名_12


可以看到makefile中是完全兼容Linux命令的,所以只要添加一个​​clean:​​​部分,即可通过​​make clean​​执行,如下:

Linux--C/C++编程入门_可执行程序_13