首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++最佳实践 | 1. 工具

Visual Studio Online的源代码库紧密集成 使用MSBuild (Visual Studio的构建引擎),可在Windows、OS X和Linux上使用 提供托管的构建代理,也允许用户提供构建代理...CMake现在也提供了在正常编译期间调用```clang-tidy```[40]的内置支持。...Clang的静态分析器 Clang的分析程序的默认选项适用于各个平台,可以直接通过CMake使用[54],也可以通过基于llvm的工具[55]中的clang-check和clang-tidy调用。...此外,CodeChecker[56]可以作为clang的静态分析前端。 clang-tidy可以通过Clang Power Tools[57]扩展轻松的和Visual Studio一起使用。...如果目标是100%的代码覆盖率,很明显这些错误场景也需要被覆盖的。 调试 uftrace uftrace[87]可以用来生成程序执行的函数调用图。

3.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

斩获 3.4k+ Star 的 C++ Insights:用编译器的视角看源码!

另外,在教学生 C++ ,如果跟他们展示 AST 并解释说这就是全部内容,我自己感觉也不太满意。 于是,我开始着手编写一个基于 Clang 的工具,可将基于范围的 for 循环转换为编译器内部版本。...C++ Insights 这个工具显示了运算符的调用位置,以及编译器进行类型转换的情况,可以推断出 auto 或 decltype 背后的类型。...--config Release --target install 你也可以在 Visual Studio 中打开 build/LLVM.sln 解决方案,然后在其中构建所有内容,而不是使用 cmake...Studio 16 2019" -A x64 -T LLVM_v142 .. cmake --build ....--config Release --target insights 除了带“Visual Studio 16 2019”的 Clang,你还可以选择其他适合你的。

15610

node-gyp是用Node.js编写的跨平台命令行工具,用于为Node.js编译本机插件

Build Tools(使用Visual C++ 构建工具”工作负载)或 Visual Studio 2017 Community(使用“C++桌面开发”工作负载) 启动cmd,npm config...以本地 ARM 上的 Windows 10 上的 ARM64 Node.js 为目标,请添加“ARM64的Visuall C++ 编译器和库”和“ARM64的 Visual C++ ATL”组件。...如果它不是一个兼容版本,将不会完成进一步的搜索。 如何使用编译本地插件,首先转到它的根目录: cd my_node_addon 下一步是为当前平台生成合适的项目构建文件。...为此使用下列命令: node-gyp configure 对Visual C++ Build Tools 2015自动侦测失败,所以需要添加--msvs_version=2015(用npm运行如上配置不需要...接下来,调用build命令: node-gyp build 现在你有了你的已编译的.node捆绑文件!已编译的捆绑文件以build/Debug/还是以build/Release/结束,取决于构建模式。

1.4K10

最好的 Windows C++ 编译

但是Visual Studio在支持最新的指令集方面已经落后,在代码优化方面它也不是最好的编译器。 英特尔编译器在代码优化方面曾经处于领先地位,但是它现在已经被Gcc和Clang超越。...在Linux和Mac上工作的程序员找到Clang编译不会有任何问题。但是在Windows上有点复杂。Windows至少有两个现成的Clang编译器版本。...Cygwin版本和Visual Studio插件版本。 Clang编译器的Cygwin版本已经存在好几年了,但是它还不是最新的,并且它有一些性能问题。...事实上,我发现在没有Visual Studio CMake框架的情况下,将Clang编译器作为命令行工具使用更加方便。...当越来越少的程序员实际使用,英特尔会继续维护它吗?英特尔编译器附带了一些非常有用的函数库,可用于许多特殊用途,但这些函数库与其他编译器的工作原理是一样的。

3K30

无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.543.5 这样的古老框架

Visual Studio 2022 已正式发布!着急升级的小伙伴兴致勃勃地升级并卸载了原来的 Visual Studio 2019 后,发现自己的几个库项目竟然无法编译通过了。...可是卸载掉 Visual Studio 2019 只留下 Visual Studio 2022 之后这些项目就不再能编译通过了。...包后值已被正常赋值了也不会使用(即使重启 VS 也是如此);于是我们在 TargetFrameworkRootPath 属性为 `` 手工给其赋上正确的值。...在使用了以上代码后,Visual Studio 2022 刚打开项目时会短暂提示缺少 .NET Framework 4.5 框架,但真正编译此提示会消失。...这些问题都是单独使用命令来编译不会遇到的问题。

80630

一种高端的APP代码保护方案

这个混淆它并不会增强过多的安全性,因为它可以通过重新优化生成的代码轻松删除,如果选择使用随机生成器以不同数值作为种子,指令替换会在生成的二进制文件中带来多样性。...cmake将OLLVM的源码转换为sln的项目 可以通过利用cmake工具或者用命令行方式转换,下面以命令行方式转换的 cmake -Thost=x64 -G "Visual Studio 16" E:...\ollvm9\obfuscator-llvm-9.0.1\obfuscator-llvm-9.0.1 上面要主要的是Visual Studio 16这个代表你环境中安装的vs版本,我安装2019版本的...通过执行以上命令后就会出现下图的效果 2、用Visual studio 2019 直接编译前面生成的OLLVM项目,主要编译Release版本。编译后正确情况下会生成bin和lib两个文件夹。...OLLVM集成 通过前面的编译后生成的bin和lib文件夹,集成到NDK中,并通过android studio编译器进行so代码保护的应用。

1.3K20

使用不同的编译编译 Skia,性能差距居然这么大

开始看到这样一句话不以为然,想想编译器优化差别能有多大呢?再说官方首先介绍的编译方法也是使用 Visual Studio 2017 或 Visual Studio 2019。...项目中虽然使用的是 Qt,但在 Windows 下,依然使用的是 MSVC 编译器。所以我想也没有想,就选择了使用 Visual C++ 的编译器 来编译 Skia。...Files (x86)\Windows Kits\10" win_sdk_version="10.0.20348.0" win_vc="c:\Program Files\Microsoft Visual...没有办法,我抱着试试的心态问了一下作者,在 github 项目的 discuss 区留言,问了一下作者使用怎样编译出来的 Skia,没想到作者很快给了回复: 按照回复,我下载了 clang 编译器,并使用了如下编译参数...现代程序员开发软件,不会使用 C/C++ 从头写起,也很少考虑性能,而是采用一大堆框架、叠加很多中间层,这当然会导致软件越来越庞大。当然,从可维护性和开发速度上来讲,这种开发模式没有什么不好。

22210

B(l)utter:一款针对Flutter移动端应用程序的逆向工程分析工具

该应用程序使用了C++20的Formatting代码库。并且需要较新版本的C++编译器,例如g++>=13或Clang>=15环境。 我们建议广大研究人员在Linux操作系统上使用B(l)utter。...out_dir blutter.py脚本将会自动根据Flutter引擎检测Dart版本,并调用blutter可执行程序从libapp.so中读取目标APK的相关信息。...如果blutter可执行程序搜索的Dart版本数据不存在,脚本将会自动检测Dart源代码并进行代码编译。.../构建Dart的python脚本; 工具开发-生成Visual Studion解决方案 我们建议广大研究人员在Windows上使用Visual Studio来对B(l)utter进行自定义开发,这里可以使用...--vs-sln选项来生成一个Visual Studio解决方案: python blutter.py path\to\lib\arm64-v8a build\vs --vs-sln 许可证协议 本项目的开发与发布遵循

70610

VS2019 Qt开发环境搭建与配置

Visual studio Qt 安装步骤 一、安装VS2019 二、安装Qt5.14 三、安装vsaddin 四、设置Qt路径创建Qt项目 五、vs2019 Qt常见病症 六、...本文介绍的是vs2019与qt5.14的安装,在写本文还没有vs2019对应的qt, 但是并不妨碍vs2019使用qt5.14对应的vs2017 qt; 大家可以选择vs2022 +...Qt只是一个C++开发框架,它需要C++编译器环境的支持,在windows上可以用msvc, 也就是visual studio的C++编译环境,也可以用MinGW, 类linux的C++环境,在linux...则是g++/gcc, macOS则是clang, 所以在windows上安装Qt时有人疑惑为什么还要安装visual studio....Qt, 插件会自动识别VS的版本,如下图 注意:在安装vsaddin插件,某些情况下可能会失败,比如windows sdk版本太低,win10系统安装有问题,win10系统太久没更新,都有可能导致

8.2K20

C++编译器可自行编译出漏洞当C ++编译器写入VULN

但是,当程序员编写正确的C ++程序并且编译器将其转换为包含漏洞的目标代码,这是罕见的。这就是我在去年10月份所经历的事情,但是,当我写的工具崩溃,我发现故障存在于Visual C ++编译器中。...微软将我们的漏洞报告称为CVE-2019-0546,但正如我们将要解释的那样,它仍未完全修补。 事件起源 当时我正使用由Borland编译的x86模块进行工具编写工作。...上面显示的漏洞仍然存在于Visual Studio的最新更新中。。 当被问及原因时,微软表示: “这个CVE-2019-0546报告是关于禁止C ++ lambda内部的内联汇编。...此外,我发现微软对Visual Studio 2017的修复是删除lambda中对__asm块的支持。...现在,如果用户尝试在Visual Studio 2017上编译上述PoC代码,则会出现以下编译器错误: ? 所以,我现在是Visual C ++编译器CVE以及全新的CXXXX编译器错误的唯一拥有者。

1.3K20

TVM 从入门到精通 | 安装 TVM (Part 1)

GCC 7.1 Clang 5.0 Apple Clang 9.3 Visual Stuio 2019 (v16.7) * CMake 3.10 或更高版本 * 推荐使用 LLVM 构建 TVM 库以启用所有功能...要让 TVM 在 masquerade 中使用 Ccache,只需在配置 TVM 的构建系统指定适当的 C/C++ 编译器路径。.../conda/pkg 在 Windows 上构建 TVM 支持通过 MSVC 使用 CMake 构建。需要有一个 Visual Studio 编译器。...VS 的最低版本为 Visual Studio Enterprise 2019 注意:查看针对 GitHub Actions 的完整测试细节,请访问 Windows 2019 Runner : https...例如,假设我们在 /path/to/tvm 目录下克隆了 tvm,我们可以在 ~/.bashrc 中添加以下代码:这使得拉取代码及重建项目,无需再次调用 setup,这些变化就会立即反映出来。

3.3K30

Win10编译CoreCLR的Windows和Linux版本

一、编译环境 首先,不管是Windows还是Linux版本CoreCLR的编译,都是在Windows10上进行的。...二、CoreCLR for Windows 在Windows上做编译怎么能少得了Visual Studio,由于Visual Studio 2017刚刚发布,所以选用Visual Studio 2017...还有最重要一点Visual Studio Express 2017不支持编译CoreCLR。 CMake 要编译CoreCLR需要CMake 3.7.2及以上版本,记得加环境变量Path。...windows编译 其实这部分有个小插曲就是,如果使用Visual Studio 2017编译的话会有一个小BUG,文档上给的例子是直接运行命令: ....三、CoreCLR for Linux 这里使用Windows 10编译Linux版本是因为Win10里带有Bash,bash是一个基于Ubuntu 14.04的Windows子系统,可以“完美”模拟Linux

2K20

.NET 6 预览版 7:新功能已完成 ,将专注于改进

还有.NET SDK模板 也做了大量的更新,把c#语言的9.0 版本最新功能引入,以充分利用最新的C# 语言用法,比如代码生成器、编译反射、顶级语句等,c# 10版本还在预览版,要了解C# 10的完整特性...加密操作的简化调用模式——新的简化加密和解密方法提供了一种使用加密 API 的直接方法,特别是当加密/解密有效负载已经在内存中并且没有被流式传输。...Visual Studio 也已更新, Visual Studio 2022 的预览版 3 添加了新的项目属性设计器、改进的深色主题和新的项目类型,以支持使用 TypeScript 或 JavaScript...另一个新功能是能够在单个解决方案中使用多个 Git 仓库。 Visual Studio 2019 也更新到 16.11,高级项目经理 Mads Kristensen表示这是最后一次基线更新。...因此,“我们鼓励企业和专业客户在 Visual Studio 2019 16.11 上实现标准化,”新功能包括 .NET 应用程序的热重载(查看动态代码更改的输出)、改进的 Git 工具以及将 Clang

1.1K10

STM32高级开发——使用VS Code搭建STM32开发环境

Visual Studio Code来作为代码编辑器,其优异的工程管理,超快的启动速度,各种各样功能强大的插件,使我立刻爱上了这个文本编辑器。...ps:启动真心快,在win下优化程度堪比记事本. 1 ---- 安装软件 下载安装 Visual Studio Code 过程按照正常方式安装就可,记得在安装快完成后的选项中勾选,添加右键打开文件和文件夹的选项...Command Adapter 提供 Clang 功能的调用 Code Outline 提供类似 eclipse 文件函数列表的功能 GBKtoUTF8 用来识别调整文件的编码格式 Makefiles...includePath 提供.h的搜索目录 defines 编译在指令中加入的宏定义 path 使用右键或ctrl追踪函数实现时搜索的目录 c_cpp_properties.json 用于设定工程的...其中需要注意的是,由于我们的调试是在windows环境下使用mingw64来实现的,所以在调试的启动过程中指令会在windows cmd和mingw64跳转几次,具体指令是在哪个终端内调用的要根据指令的类型来决定

1.2K60
领券