linux下的编译器

1.linux下的编译器:
g++编译c++代码,gcc编译c的代码
(1)编译单个源文件:
g++ main.cpp -o helloworld
其中,
g++编译器 main.cpp源文件列表 -o helloworld:输出文件(output)
./helloworld 运行程序
(2)编译多个源文件:
g++ main.cpp other.cpp -o helloworld(编译的时候,只指定源文件*.cpp,不指定头文件*.h)
在linux下文件名区分大小写,程序的运行 ./helloworld前面必须加路径,不能写成helloworld
2.可执行程序
(1)该文件是一个程序文件
该文件有x属性
满足这两个条件,才能执行
$ ls -l helloworld
-rwxrwxr-x 1 mytest mytest …
首先是一个程序文件,然后有x属性,所以可以被执行
如果 chmod -x helloworld就不可执行
(2)PATH环境变量描述了可执行程序的搜索路径/bin:/usr/bin:/usr/local/bin…若干路径位置,以分号隔开
显示PATH的值:echo $PATH
当你输入一个命令时,系统会从PATH描述的路径里搜索此命令,所以,直接输入helloworld会显示“命令找不到”(command not found)
第一种方法:执行程序时加上路径 ./helloworld /home/mytest/…/helloworld
第二种方法:把helloworld拷贝到PATH的某个目录下
第三种方法:重设环境变量PATH
3.编译与链接过程
程序的生成过程分为两步:
编译:compile ,将*.cpp->.o(obj)
链接:link,将所有的
.o(obj)->executable
在linux下开发时,要严格区分这两步过程
使用-c选项,生成中间文件*.o
一.编译
g++ -c main.cpp -o main.o
g++ -c other.cpp -o other.o
(加上-c表示进行的是compile,不是link)
二.链接
g++ main.o other.o -o helloworld
(没有加-c,表示生成最终的可执行程序)
4.认识Makefile
Makefile是一个描述“如何生成整个项目”的脚本文件
方法:
(1):创建一个文件叫Makefile
(2):输入命令,根据Makefile里面的指示,自动执行所有的步骤 make -f Makefile(或者直接make不带参数)
Makefile就是一个普通的文本文件,它由很多条“规则rule组成”,这些规则就是描述了“先干什么,后干什么”
每一条规则的格式为:
target:dependencies
[tab] system command1
[tab] system command2
[tab] system command…
target :目标 dependencies:依赖
:每行命令前必须插一个tab
system command:系统命令
读作:要完成目标target,必须执行命令commands…
当存在很多条规则时,默认从第一条规则开始执行
helloworld:
g++ main.cpp other.cpp -o helloworld
clean:
rm -rf helloworld
输入make命令时,同时显示指定要执行哪一条rule:
make clean
make -f Makefile clean
注:make命令默认只执行一条规则,其他规则默认不执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值