转载:CSDN 无鞋童鞋-------Linux下gcc/g++、make和cmake的区别
来源:互联网 发布:淘宝链接转淘口令在线 编辑:程序博客网 时间:2024/06/05 04:31
文本程序到可执行文件生成无论在什么平台大致分为以下几个部分:
1.用编辑器编写源代码,如.c文件。
2.用编译器编译代码生成目标文件,如.o。
3.用链接器连接目标代码生成可执行文件,如.exe。
Linux平台下,.o文件一般是通过编译的但还未链接的目标文件,.out文件一般都是经过相应的链接产生的可执行文件(linux下)。当然这是一般情况下人们这么设置,而真正的,在linux中 .o通常保存的是可执行代码 ,至于可执行文件则没有规定扩展名,用的是文件属性位来决定的是否可执行。在chmod中设置。
我们知道编译和链接阶段是靠g++和gcc编辑器来完成,这两个编译阶段是相同的,但是链接阶段g++默认链接c++库,所以一般情况下用gcc编译c文件,而g++编译cpp文件。当然g++也可以编译c文件,而gcc编译cpp文件则需要在后面加上参数-lstdc++,作用就是链接c++库。
但是如果编译和链接的阶段如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。
对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。所以在编程的世界里没有捷径可走,还是要脚踏实地的。
原文件—cmakelist —cmake —makefile —make —生成可执行文件(make中则包含了多条链接以及gcc/g++编译语句)。
参考自下面博文:
http://blog.sina.com.cn/s/blog_74a459380102uxlz.html
1.用编辑器编写源代码,如.c文件。
2.用编译器编译代码生成目标文件,如.o。
3.用链接器连接目标代码生成可执行文件,如.exe。
Linux平台下,.o文件一般是通过编译的但还未链接的目标文件,.out文件一般都是经过相应的链接产生的可执行文件(linux下)。当然这是一般情况下人们这么设置,而真正的,在linux中 .o通常保存的是可执行代码 ,至于可执行文件则没有规定扩展名,用的是文件属性位来决定的是否可执行。在chmod中设置。
我们知道编译和链接阶段是靠g++和gcc编辑器来完成,这两个编译阶段是相同的,但是链接阶段g++默认链接c++库,所以一般情况下用gcc编译c文件,而g++编译cpp文件。当然g++也可以编译c文件,而gcc编译cpp文件则需要在后面加上参数-lstdc++,作用就是链接c++库。
但是如果编译和链接的阶段如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。
对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。所以在编程的世界里没有捷径可走,还是要脚踏实地的。
原文件—cmakelist —cmake —makefile —make —生成可执行文件(make中则包含了多条链接以及gcc/g++编译语句)。
参考自下面博文:
http://blog.sina.com.cn/s/blog_74a459380102uxlz.html
阅读全文
0 0
- 转载:CSDN 无鞋童鞋-------Linux下gcc/g++、make和cmake的区别
- Linux下gcc/g++、make和cmake的区别
- gcc和g++的区别(转载)
- gcc和g++的区别(转载)
- gcc和g++的区别(转载)
- cmake和make区别(转载)
- cmake和make区别(转载)
- cmake和make区别(转载)
- cmake和make区别(转载)
- Linux下GCC与G++的区别和联系
- Linux下g++和gcc之间的区别
- make和cmake的区别
- make和cmake的区别
- cmake和make的区别
- Linux的gcc和g++的区别
- CMAKE 和 MAKE 区别
- cmake和make区别
- cmake和make区别
- net.sf.json.JSONException: There is a cycle in the hierarchy!
- js关于arguments和参数名称重复的问题
- 多图上传--FormData表单&Java,SSM
- 关于Listview和Checkbox控件嵌套出现的各种问题
- 一周 Go World 新鲜事[Asta 优选]
- 转载:CSDN 无鞋童鞋-------Linux下gcc/g++、make和cmake的区别
- git上找不到远程分支,直接切换报错error: pathspec 'origin/XXX' did not match any file(s) known to git.
- 服务器80端口映射到8080端口
- 服务化架构下的数据一致性如何保证
- 推挽输出与开漏输出的区别
- Java中ResourceBundle类的使用
- 学习Javascript闭包(Closure)
- QEMU搭建arm linux环境
- iOS下 WebRTC 视频渲染