首页 > 其他分享 >g++,gcc,make,cmake,makefile,vscode,vs之间的关系

g++,gcc,make,cmake,makefile,vscode,vs之间的关系

时间:2022-11-13 21:48:07浏览次数:67  
标签:文件 gcc cmake ++ make makefile 编译

编译过程是源文件   -预编译-.i文件  -编译-.s文件  -汇编-.o文件   -链接-可执行文件、

gcc和g++都是编译器,不过gcc处理cpp时不能直接连接标准库,g++可以直接连接,所以cpp一般用g++

gcc、g++操作选项(以GNU编译器为准)

-E 预处理选项,生成.i文件
-S 编译选项,生成.s汇编文件
-c汇编选项,将汇编文件编译成二进制文件
-o 生成可执行目标文件选项
-I(大写的i) 将设置增加 #include <>标准库的查找目录

-fPIC 共享库代码段复用,代码段安全访问的目的,编译动态库时用到

-L指定链接库的路径,LD_LIBRARY_PATH:此库文件不在缺省目录下 /lib和/usr/lib,那么就需要指定环境变量LD_LIBRARY_PATH。

-l(小写l)指定程序要链接的库,后面紧跟库名

 

makefile文件中描述了整个软件工程的编译规则和各个文件之间的依赖关系,有点像sh文件

makefile文件要通过make来运行,然后make install安装,一般的包安装就是三部曲,./configure,make,make install

 

cmake是跨平台的安装编译工具,只需要编写CMakeList.txt文件,能够自动生成工程文件和makefile文件,相当于在make上又封装了一层

 

vscode是一个编辑器,不是编译器,vs是IDE,是一个完整的集成开发环境

标签:文件,gcc,cmake,++,make,makefile,编译
From: https://www.cnblogs.com/uestc-du/p/16887046.html

相关文章

  • C++ 很有意思的自动相亲交往系统基础版
    Boy.h:#pragmaonce#include<string>#include<vector>usingnamespacestd;classGirl;classBoy{public:Boy();Boy(intage,stringname,intsalary......
  • c++ 基础语法
    一眼mophie,鉴定为:普及组。#include<bits/stdc++.h>#defineintlonglong#definepbpush_back#definempmake_pair#definepiipair<int,int>#definexfirst#de......
  • C/C++班主任管家系统
    C/C++班主任管家系统设计与开发班主任管家系统,巩固所学c语言基础知识,通过实际项目的开发过程培养综合解决问题的能力及编程能力等。班主任管家软件以学生信息﹑课程信息为......
  • C/C++中声明指针变量时星号是靠近变量名还是靠近数据类型?
    摘自<<C和指针>>3.23  int*a;int*a;两者意思相同且后者看上去更为清楚:a被声明为类型为int*的指针.但是,这并不是一个好技巧,原因如下:int*b,c,d;人们很......
  • C++中 vector容器的神奇用法
    1.可以用简单的数据类型作为参数:#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>data;data.push_back(1);data......
  • C++设计模式-(创建模式)原型模式
     原型模式主要用于复制当前对象的副本 #include<iostream>classanimal{public:virtual~animal(){}virtualvoideat(){std::cout......
  • 按照C++语言程序结构组成数字电路进行计算的计算机
    按照C++语言程序结构组成数字电路进行计算的计算机按照C++语言程序结构组成数字电路进行计算的计算机是一种可以按照C++语言程序结构来安排加法器,输出显示电路,输入电路,的数......
  • 类和对象——C++运算符重载
    概念:对已有的运算符重新定义,赋予其另一种功能,以适应不同数据类型。。重载的两类方法:1.类成员函数重载2.全局函数重载注意:运算符重载也可以实现函数重载引入:我们希望......
  • C++ template using for what?
    //Forclassusing,youcansetaseriousofmacrotopredictsomething////whenyoucallthismacro,thetemplatecouldmakeanewfunctionbyyourinput//templ......
  • C++运算符重载相关知识点
    1.运算符重载限制重载后的运算符必须至少有一个操作数是用户自定义的类型使用运算符时不能违反运算符原来的句法规则,也不能修改运算符的优先级。2.不能进行重载的运......