• Linux下C++开发笔记--g++命令


    目录

    1--前言

    2--开发环境搭建

    3--g++重要编译参数

    4--实例


    1--前言

    最近学习在linux环境下进行C++开发的基础知识,参考的教程是基于VSCode和CMake实现C/C++开发 | Linux篇,非常适合小白入门学习。

    2--开发环境搭建

    ①安装gcc、g++和gdb:

    1. sudo apt update
    2. sudo apt install build-essential gdb

    查看是否安装成功及版本:

    1. gcc --version
    2. g++ --version
    3. gdb --version

    ②安装CMake:

    sudo apt install cmake
    

    查看是否安装成功及版本:

    cmake --version

    3--g++重要编译参数

    ①-g:编译带调试信息的的可执行文件

    g++ -g main.cpp

    ②-O:优化源代码,-O1为默认优化,-O2为最常用的优化

    g++ -O2 main.cpp

    ③-L(大L):指定库文件(动态库为.so文件,静态库为.a文件)所在的目录

    ④-l(小L):指定具体的库文件

    g++ -L/home/liujinfu/libfolder -lmytest main.cpp

    :在 /lib/usr/lib/usr/local/lib 三个目录里的库可以直接用-l参数进行链接;上述指令中,/home/liujinfu/libfolder为库所在的文件夹,mytest为对应的libmytest.a静态库libmytest.so动态库动态库的优先级高于静态库

    ⑤-I(大i):指定.h头文件的搜索目录

    g++ -I/myinclude main.cpp

    ⑥-Wall:打印警告信息

    ⑦-w:关闭所有警告信息

    1. g++ -Wall main.cpp
    2. g++ -w main.cpp

    ⑧-std=c++11:设置编译标准

    g++ -std=c++11 main.cpp

    ⑨-o:指定输出文件名(不指定,默认生成a.out可执行文件)

    g++ main.cpp -o main

    ⑩-D:定义宏

    4--实例

    ①建议如下图所示的项目:

    ②代码实现:

    main.cpp:

    1. #include
    2. #include "swap.h"
    3. using namespace std;
    4. int main(){
    5. int a = 3;
    6. int b = 4;
    7. cout << "Before Swap: " << endl;
    8. cout << "a = " << a << ", b = " << b << endl;
    9. swap(a, b);
    10. cout << "After Swap: " << endl;
    11. cout << "a = " << a << ", b = " << b << endl;
    12. }

    swap.cpp:

    1. #include "swap.h"
    2. void swap(int &a, int &b){
    3. int temp;
    4. temp = a;
    5. a = b;
    6. b = temp;
    7. }

    swap.h:

    void swap(int &a. int &b);

    ③使用g++编译:

    g++ main.cpp src/swap.cpp -Iinclude -std=c++11 -O2 -Wall -o test.out

    ④运行可执行文件:

     

  • 相关阅读:
    Java基础知识面试题
    HarmonyOS NEXT应用开发之深色模式适配
    SSM - Springboot - MyBatis-Plus 全栈体系(十七)
    黑盒测试用例设计方法案例与练习题
    【C++天梯计划】1.10 二叉树(binary tree)
    JavaEE基础知识
    Prompt Engineering
    JavaScript的Web api接口
    Khronos: 面向万亿规模时间线的性能监控引擎建设实践
    wmv怎么转换成视频mp4
  • 原文地址:https://blog.csdn.net/weixin_43863869/article/details/127871520