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

2023-11-06

目录

1--前言

2--开发环境搭建

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

4--实例


1--前言

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

2--开发环境搭建

①安装gcc、g++和gdb:

sudo apt update

sudo apt install build-essential gdb

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

gcc --version
g++ --version
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:关闭所有警告信息

g++ -Wall main.cpp

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:

#include <iostream>
#include "swap.h"

using namespace std;

int main(){
    int a = 3;
    int b = 4;
    cout << "Before Swap: " << endl;
    cout << "a = " << a << ", b = " << b << endl;
    swap(a, b);
    cout << "After Swap: " << endl;
    cout << "a = " << a << ", b = " << b << endl;
}

swap.cpp:

#include "swap.h"

void swap(int &a, int &b){
    int temp;
    temp = a;
    a = b;
    b = temp;
}

swap.h:

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

③使用g++编译:

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

④运行可执行文件:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下C++开发笔记--g++命令 的相关文章

随机推荐

  • 【Linux】设计模式

    目录 1设计模式 1 1概念 1 2设计模式分类 1 3单例模式 1 4单例模式代码演示 1 4 1懒汉模式 1 4 2饿汉模式 2 读写锁 2 1概念 2 2加锁规则 2 3接口 2 3 1初始化接口 2 3 2销毁接口 2 3 3解锁接
  • 第1章第5节:如何使用模板创建风格统一的幻灯片 [PowerPoint精美幻灯片实战教程]

    使用模板可以创建美观 风格统一和专业的幻灯片 要使用模板创建幻灯片 首先点击此处的文件选项卡 进入文件功能页面 然后在左侧的命令列表中 点击新建命令 在页面的下方 是由微软提供的常见的演示文稿模板 也可以通过搜索框 搜索指定主题的模板 点击
  • SharedPreferences 操作

    public class SPActivity extends Activity 使用SharedPreferences 来储存与读取数据 SharedPreferences mShared null 程序中可以同时存在多个SharedPr
  • IndentationError:expected an indented block错误解决

    IndentationError expected an indented block错误解决 描述 有时一个简单的问题会困扰很久 当发现问题后才感觉自己是多蠢 下面记录一个在日常Python编程过程中碰见的典型问题 参考文章 http h
  • C++编写及注册windows服务程序

    1 注册服务 在 开始 gt 运行 gt cmd 中输入 sc create TEST binPath C TEST EXE 则在windows下注册了一项服务 sc create TestService binpath c Service
  • GitHub Action + Release:打造 Electron 持续交付系统文件配置

    main yml上的文件配置 This is a basic workflow to help you get started with Actions name build Electron App For Win Mac Control
  • 上班族适合的兼职副业,副业做什么比较靠谱,副业赚钱的路子有哪些

    要找能不影响上班的副业 那前提条件就必须不能让你投入太多的时间在上面 否则说不影响上班就是扯淡哈 对于找什么副业比较靠谱这样的问题 我们首先要清楚 哪里的用户多 我们就在那个地方寻找就准没错 这也是基本道理 无可厚非 短视频平台就是现在人流
  • C++ const 关键字详解(全网最全)

    1 const修饰符的作用 const类型定义 指明变量或对象的值是不能被更新 引入目的是为了取代预编译指令 可以保护被修饰的东西 防止意外的修改 增强程序的健壮性 编译器通常不为普通const常量分配存储空间 而是将它们保存在符号表中 这
  • 红米手机5A完整卡刷开发版获取Root超级权限的流程

    小米的手机或平板不同手机型号一般小米官网都提供两个不同的系统 可分为稳定版和开发版 稳定版没有提供Root超级权限管理 开发版中就提供了Root超级权限 在很多工作的时候我们需要使用的一些功能强大的应用 都需要在Root超级权限下工作 比如
  • 骑士周游问题,马踏棋盘算法

    该问题实际上是图的深度优先搜索的应用 package com horsechess import java awt import java util ArrayList import java util Comparator public
  • 华为OD机试真题-猜字谜【2023.Q1】

    题目描述 小干设计了一人简单的清字谈游戏 游戏的迷面是一人错误的单词 比如nwes 玩家需要猜出谈底库中正确的单词 猜中的要求如 对于某个谜面和谜底单词 满足下面任一条件都表示猜中 1 变换顺序以后一样的 比如通过变换w和e的顺序 nwes
  • Qt自带了一些常用的对话框,例如消息框、警告框、提问框等等

    Qt自带了一些常用的对话框 例如消息框 警告框 提问框等等 而QMessageBox作为其中的一种 它可以用来显示简单的信息提示 如确认对话框 错误提示等等 但是 我们发现这些提示框的样式都是固定的 无法实现自定义的样式 那么本文将介绍如何
  • 检测到目标web应用表单密码类型输入启用了自动完成操作

    描述 在web应用form表单中 如果input标签没有指定 autocomplete 属性为 off 则 autocomplete 的属性会自动默认为on 当web应用form表单中的密码类型为input标签 autocomplete属性
  • Linux系统权限详解

    目录 一 权限解释 1 所有者权限 2 所属组权限 3 其他人权限 二 用户用户组解释 3 解释权限含义 4 权限命令解释 三 基本权限 U G O 1 权限对象 2 基本权限 3 高级权限 一 权限解释 在Linux系统中 文件和目录的访
  • 【数据结构入门】时间复杂度和空间复杂度

    算法在编写成可执行程序后 运行时需要耗费时间资源和空间 内存 资源 因此衡量一个算法的好坏 一般是从时间和空间两个维度来衡量的 即时间复杂度和空间复杂度 时间复杂度主要衡量一个算法的运行快慢 而空间复杂度主要衡量一个算法运行所需要的额外空间
  • 以太坊智能合约部署与交互

    启动容器来执行geth命令 root ubu blockchain2 docker run i blockchain101 ethereum geth 1 6 5 geth attach http 45 32 252 88 8201 Wel
  • c++ 从vector 查找指定元素

    include
  • 如果安装License失败的解决方案

    有些用户的机器安装License失败 如下图 可以尝试使用以下方案
  • 剑指 Offer II 075. 数组相对排序

    问题描述 给定两个数组 arr1 和 arr2 arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序 使 arr1 中项的相对顺序和 arr2 中的相对顺序相同 未在 arr2 中出现过的
  • Linux下C++开发笔记--g++命令

    目录 1 前言 2 开发环境搭建 3 g 重要编译参数 4 实例 1 前言 最近学习在linux环境下进行C 开发的基础知识 参考的教程是基于VSCode和CMake实现C C 开发 Linux篇 非常适合小白入门学习 2 开发环境搭建 安