首页 > 编程语言 >每一个C++开发者都应该知道的线上工具

每一个C++开发者都应该知道的线上工具

时间:2023-09-27 19:57:16浏览次数:60  
标签:汇编 www Explorer C++ 开发者 https 工具 com

 

 

每一个C++开发者都应该知道的线上工具 - 知乎 (zhihu.com)

 

要想代码写得丝滑,怎么可以不熟练各种开发工具呢?锤子用的好,烦恼会减少。这里推荐几个C++开发中用于编译、构建、调试和性能分析的线上工具,最初的资料来源于Lightning Talk: Online Tools Every C++ Developers Should Know - Thamara Andrade - CppCon 2021[1],我对这些工具做了一些摸索,并整理了相关资料。

  1. C++ Shell
  2. Online GDB
  3. Quick C++ Benckmark
  4. Perfbenck
  5. Buildbench
  6. Compiler Explorer: 推荐 用来学习和查看汇编代码很方便
  7. C++ insights

 

 

 

Compiler Explorer

Compiler Explorer[8]是一个源代码到汇编代码的转换工具,支持多种编程语言如C/C++,Java和Python,以及多种编译器如clang,gcc和msvc。Compiler Explorer的交互式界面很直观,如下图所示,默认左边为输入的源代码窗口,右边为输出的汇编窗口。

 

上图展示了一段C++代码的汇编结果,编译器不同的优化级别(常用的如Os、Ofast、Og、O1、O2、O3或O4)以及不同的汇编语法(常见的如AT&T或Intel)都会影响最终的汇编结果,这里这里开启 了-Og优化,且选择以AT&T的语法格式输出汇编结果。

C++ insights

C++ insights[9]是基于clang的源码到源码转换工具,可以帮助我们了解编译器在背后所做的一些代码转换工作,可以用来直观理解lambda表达式、range-based循环、auto自动类型推导 和 结构化绑定等语法的工作原理,例如下图右侧窗口展示了结构化绑定和auto自动类型推导转换后的c++源代码。

 

 

 

Coliru (stacked-crooked.com)

 

参考

[1] : Lightning Talk: Online Tools Every C++ Developers Should Know - Thamara Andrade - CppCon 2021

[2]: C++ Shell: http://www.cpp.sh

[3]: Online GDB: https://www.onlinegdb.com/

[4]: GDB Tutorial: http://www.gdbtutorial.com/

[5]: Quick C++ Benckmark: https://www.quick-bench.com/

[6]: Perfbench: https://www.perfbench.com/

[7]: Buildbench: https://build-bench.com/

[8]: Compiler Explorer: https://godbolt.org

[9]: C++ insights: https://cppinsights.io/

 

 

 

 

标签:汇编,www,Explorer,C++,开发者,https,工具,com
From: https://www.cnblogs.com/sinferwu/p/17734175.html

相关文章

  • 使用idea自带的反编译工具 [FernFlower]
    终端直接输入命令java-cp参数1org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler-dgs=true参数2参数3参数说明:参数1。IDEA安装目录下的反编译插件“java-decompiler.jar”所在路径,需要加上双引号。示例:"E:\IntelliJIDEA2020.2.2\plugins\java-decomp......
  • C++(命名空间,输入输出)
    从堆上申请空间#include<malloc.h>int*p=(int)malloc(10sizeof(int));//malloc返回的是无类型free(p);//释放内存,不然会造成内存泄漏命名空间:用户自己定义的作用域namespaceN{//变量inta;//函数}inta;//不冲突命名空间可以嵌套在一个工程中,可以出现多个相同名称的命名......
  • 1.go安装和包管理工具
    下载地址安装之后,自动添加系统环境变量PATH=>"C:\Go\bin"查看go版本信息goenv使用七牛云设置golang环境,代理goenv-wGO111MODULE=ongoenv-wGOPROXY=https://goproxy.cn,direct保管理工具go1.11之后,使用goMod管理go初始化gomodeinitnameuser......
  • 创建一个日期与字符串之间处理的工具
    packagecn.com.maple.utils;importorg.apache.logging.log4j.LogManager;importorg.apache.logging.log4j.Logger;importorg.joda.time.DateTime;importorg.joda.time.format.DateTimeFormat;importorg.joda.time.format.DateTimeFormatter;/***@authorLiDY*@desc......
  • .NET Core|--调用C++库|--LibraryImport docker环境下,处理依赖问题--GCC--Docker
    前言万恶之源在于,C#程序中需要调用C++的一个函数库,在Windows环境下,只要保证引用的相关dll存在,就是ok的,但是在Linux环境下,并且我的Webapi程序是部署在docker中的,问题就比较麻烦一些.经历了新建软链接,缺失".so"文件,有了".so"文件后,版本错误:libstdc++.so.......
  • Redis可视化工具:Another Redis Desktop Manager
    Redis可视化工具:AnotherRedisDesktopManager一、介绍AnotherRedisDesktopManager(简称:RedisDesktopManager或RDM)是一个Redis数据库的可视化管理工具。它是一个跨平台的桌面应用程序,能够让用户更轻松地与Redis进行交互和管理。更快、更好、更稳定的Redis桌面(GUI)管理客户......
  • c++正则表达式汇总
    一、校验字符的表达式1汉字:^[\u4e00-\u9fa5]{0,}$2英文和数字:^[A-Za-z0-9]+或[A−Za−z0−9]4,403长度为3-20的所有字符:^.{3,20}$4由26个英文字母组成的字符串:^[A-Za-z]+$5由26个大写英文字母组成的字符串:^[A-Z]+$6由26个小写英文字母组成的字符串:^[a-z]+$7由数字......
  • C++多线程Multithreading std::condition_variable
    多线程Multithreading#include<iostream>#include<thread>#include<mutex>#include<condition_variable>std::mutexmtx;std::condition_variablecv;boolisOdd=true;voidprintOdd(){for(inti=1;i<=100;i+=2){......
  • logwatch日志分析工具安装与使用
    Linux日志分析工具(logwatch)安装及使用运维网工 2023-09-1209:00 发表于重庆收录于合集#运维工程师185个#Linux运维19个#linux运维23个#运维工具96个链接:http://c.biancheng.net/view/1108.htmlLinux日志分析工具(logwatch)安装及使用日志是非常重要的系统文......
  • Python工具箱系列(四十三)
    tar文件操作tar命令是Unix/Linux平台用的最多的命令之一。原始的tar只具备打包和解包的功能:TapeARchive,本义就是把文件打包备份到磁带机。GNU为tar增加了很多新功能,比如支持各种压缩格式。在Unix中一切都是文件:普通文件,文件夹,符号链接,设备文件等等。tar包就是由一个个文件顺序排......