码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

    ④运行可执行文件:

     

  • 相关阅读:
    MobLink for Flutter
    科技云报道:青云科技打出“AI算力牌”,抢跑“云+AI”新增市场
    在互联网,摸爬滚打了几年,我悟了。面对如今经济形势,普通打工人如何应对?
    什么是 Vue 实例,及其与组件的关系
    分布式文件存储系统minio
    知识蒸馏实战:使用CoatNet蒸馏ResNet
    【Sharding-JDBC】分库分表实际应用
    rsync+inotify实现数据同步
    酷开科技逐步为用户构建健全的智慧家庭生活场景
    电脑同时连接有线和无线网络怎么设置网络的优先级
  • 原文地址:https://blog.csdn.net/weixin_43863869/article/details/127871520
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号