文章目录
一、前提
- 以下环境均采用树莓派环境下编程
- 想要在Linux上进行编辑,必须学会Linux基本编辑命令和其他基本命令
- 有编程基础
二、安装编译器,并开始第一个程序
1、安装编译器gcc & g++
2、编写第一个程序
编辑完成后开始进行编译
编译程序,c语言使用
gcc 文件名
,c++使用g++ 文件名
编译完成后会在当前路径下生成名为a.out可执行文件,执行程序,使用./a.out
假如我们不想系统自动生成a.out可执行文件,可以使用-o
选项,例如:
g++ main.cpp -o HelloWorld
三、C与C++混合编程
首先我们在第二小节的基础上再次添加一个C文件程序,分别是a.h和a.c
1、编辑a.h
2、编辑a.c
3、在main.cpp中调用testC()
函数
4、再次使用g++编译程序
按之前的操作进行编译,可以看到报错了,提示testC没有定义,这是因为我们使用了a.c
中的函数,但是并没哟对a.c
进行编译,那么我们只需使用g++将a.c
编译一次就可以了
四、编译
众所周知,程序的执行顺序是:编译->链接->运行
如果我们直接采用g++ 加文件名
是会同时完成编译和链接的,我们也可以使用g++的参数来分步完成编译和链接。
1、g++ -c
(compile)编译,生成.o
文件
2、g++ *.o对编译后的文件进行链接,生成可执行程序
3、通过ldd 可执行程序
可以看到该可执行程序所链接的库
4、最后通过./程序名
运行程序
五、编写makefile
从前面可知通过命令
g++ -c *即可编译程序
g++ *.o即可链接文件,生成可执行程序
那么当我们的程序非常庞大的时候,.cpp、.c
文件必然是很多的,如果我们还是通过一个一个g++去敲文件名的形式去编译和链接,这是非常麻烦的,那么这时候就需要引入makefile
,通过该脚本,我们便可以轻松地管理我们的程序文件。
我们接着上面的程序,编写一个makefile
-
makefile
为脚本的名字 -
start
可以随便命名,这里写为start
表示是程序的开始部分 -
start
后面接的:
,表示start
为可以执行的部分,可通过命令make start
执行 - g++命令前面的空白部分,注意不是空格,必须是键盘左上角部分的tab键
- 最后编译
makefile
脚本,使用make
命令
因为start:
为该makefile脚本的第一个可执行部分脚本代码,所以直接通过make
也可执行start:
所示部分。可以看到通过makefile脚本编译连接后的*.o
文件是没有作用的了,那么我们是否有办法将其删除呢?当然是可以的,只需修改makefile文件就可以,如下:
可以看到makefile中是完全兼容Linux命令的,所以只要添加一个clean:
部分,即可通过make clean
执行,如下: