上一篇我们写了一个最基本的Hello Engine,并用Visual Studio的命令行工具,cl.exe进行了编译。
Clangen使用 ClangSharp解析头文件来完成一些中间代码的生成(如Rpc的注册代码, 桩代码, C++类导出到Lua的代码等). 而ClangSharp本身依赖了llvm, 以及自己的一个libClangSharp的库, windows和linux下需要编译一下llvm和这个库, 一般来说系统没变的情况下, 直接使用已经编译好的libclang.so/dll即可, 但有些时候遇到需要升级llvm到高版本的情况, 比如说我们之前碰到的情况 , llvm9在linux下运行速度异常(Windows下10S的流程, 在linux下处理同样的任务要快3分钟, 最后发现可能之前编译使用的是debug版本), 我们需要编译LLVM, 并且编译依赖llvm的libClangSharp, 官方文件比较简单, 而且配置项有一些问题, 可能导致不能正常编译, 所以这里记录下过程方便后续有相关需求的时候可以参照处理.
本文档旨在收集对C++最佳实践所进行的协作性讨论,是《Effective C++》(Meyers) 和《C++ Coding Standards》(Alexandrescu, Sutter) 等书籍的补充。在讨论如何确保整体代码质量的同时,补充了一些没有讨论到的较低级别的细节,并提供了具体的风格建议。
在技术不断更迭的软件开发世界中,市场上 C++ 编译器的数量开始持续呈现下降趋势。而随着新的高级 C++ 标准(C++ 17、C++ 20)、新的指令集扩展、以及代码优化的更高标准的出现,究竟什么样的编译器才算优秀?
本文旨在让我们回顾 C++ 2019年里的变化和发展!我们将重点关注本年度里 C++ 上发生的重大事件,标准的发展,工具的变化等等……
首先,不管是Windows还是Linux版本CoreCLR的编译,都是在Windows10上进行的。
关于GoogleTest和CMake结合使用,可以参照GoogleTest官方文档Quickstart: Building with CMake
clang-format 是 LLVM 下的一款代码风格格式化工具,它支持多种代码格式化风格,如:Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit。团队中也可以根据配置定义自己的代码格式化风格保存到 .clang-format 配置文件中并放在项目工程目录下提供所有项目参与者使用,但如何让 .clang-format 工作起来呢?本文将讨论各类主流编辑器、IDE 是如何让 .clang-format 配置工作并且在代码粘贴或保存时自动进行格式化。
内容一览:TVM 共有三种安装方法:从源码安装、使用 Docker 镜像安装和 NNPACK Contrib 安装。本文重点介绍如何通过源码安装 TVM。
之前曾使用 Visual Studio 2019 开发 CMake 项目 , 参考之前的博客 :
B(l)utter是一款针对Flutter移动端应用程序的逆向工程分析工具,当前版本的B(l)utter仅支持Android libapp.so(ARM64),可以帮助广大研究人员对基于Flutter开发的移动端应用程序进行逆向工程分析。
Android Studio 2.2 及以后的版本默认使用CMake进行 NDK 编译, 其中最吸引人的地方是,在开发NDK程序时可以进行联机调试,这真是大在的方便了开发者开发NDK程序的效率了。 那么使用CMake编译NDK程序是否与我们之前介绍的使用ndk-build编译有很大的不同呢?下面我们就来一窥它的原理。
打开 Visual Studio 2019 , 在 VS 欢迎界面中 , 选择 " 创建新项目 " 选项 ,
概述 由于我工作环境是Linux和Mac,个人的工作目录和开发环境一直来回切换,之前一直使用emacs。不可否认,emacs非常强大和可定制化。昨天由于个人电脑系统损坏,重装了osx。在好基友的推荐下,试用vscode,发现非常不错。于是记录和分享到博客中。今天主要给大家讲解的vscode配置c/c++ ide开发环境,当然官网支持很多种可定制化的配置。 开发环境搭建 我们首先安装vscode,官网是:vscode。我们下面来安装支持c/c++开发环境的安装包。 cpptools cmake C/C++ C
LLVM是lowlevel virtual machine的简称,它诞生于2003.10伊利诺伊大学香槟分校,创始人是ChrisLattner,它是一个完整的编译器框架,它兼容大部分主流开发语言例如:C, C++, Objective-C等等,它也兼容大部分主流的平台:x86, x86-64, PowerPC, PowerPC-64,ARM,Thumb等等。
OpenVINO是英特尔基于自身现有的硬件平台开发的一种工具套件,主要用于快速开发高性能计算机视觉及深度学习视觉的应用程序和解决方案,从而实现人类视觉模拟、自动语音识别、自然语言处理和推荐系统任务。该工具套件基于最新一代的人工神经网络,包括卷积神经网络、递归网络和基于注意力的网络,可扩展跨英特尔硬件的计算机视觉和非视觉工作负载,从而最大限度地提高性能。基于OpenVINO,可提升应用程序在CPU计算设备上的推理速度。
亲爱的读者朋友们,躺平区UP腆着脸来更新了,这半年时间经历了几次内心的仰卧起坐,最终还是彻底的躺了,这次挣扎着再次坐了起来,希望能给大家带来一点不一样的东西。好了,废话不多说了,Let's go !!!
Conan 2.0 版本已经发布很久了,配套的 cmake-conan 工具也同时得到了更新,在原有 Conan 1.x 版本上增强了功能,对开源项目和公司内部已有的 CMake 项目非常友好,接入简单。本文主要介绍 cmake-conan 的应用场景以及交叉编译的实战。
对大型项目来说,必然会有很多的依赖项。特别是现代化的组件都会尝试去复用社区资源。而对于C/C++而言,依赖管理一直是一个比较头大的问题。 很多老式的系统和工具都会尝试去走相对标准化的安装过程,比如说用 pkg-config 或者用系统自带的包管理工具装在系统默认路径里。 当然这样很不方便,也不容易定制组件。我使用 cmake 比较多,所以一直以来在我的 atframework 项目集中有一个 utility 项目 atframe_utils,里面包含一些常用的构建脚本。 并且在 atsf4g-co 中实现了一些简单的包管理和构建流程。
工具概述 Clairvoyance是一款功能强大的Windows进程内存地址空间可视化工具,它可以针对一个Windows 64位内核中运行的整个64位进程地址空间(用户和内核)创建一个丰富多彩的页面保护可视化界面。 该工具利用hilbert空间填充曲线将一维空间即地址空间转化为二维可视化界面。上图中的每个彩色像素表示虚拟内存中4KB页的页保护(UserRead、UserReadWrite等)。 地址空间是通过从使用WindDbg生成的内核崩溃转储中手动解析与进程相关联的四级页表层次结构来直接计算的。 最后
Visual Studio 2022 正式版于发布。新版本带有 go-live 许可证,可供生产使用。在 Visual Studio 2019 的基础上,新版集成开发坏境提供了非常多的改进,包括对 64 位、.NET 6 和 C++ 20 的支持,为核心调试器提供更好的性能,并在实时共享会话中支持文本聊天。
自己总结的一个有关C++的一些第三方库,包括示例和链接,目前已经托管到Github上面:Cplus_libs_wrapper
https://www.toutiao.com/i6920405760988201479/
对于习惯了 Visual Studio 强大的管理项目、编码和调试功能的读者来说,在 Linux 下使用 gcc/g++ 编译、使用 gdb 调试是一件何其痛苦的事情,对于大多数的开源 C/C++ 项目,如果我们不在意 Windows 和 Linux 在一些底层 API 接口上的使用差别,想熟悉该项目的执行脉络和原理,在 Windows 上使用 Visual Studio 调试该项目也未尝不可。凡是可以使用 CMake 工具编译的 Linux 程序(即提供了 CMakeLists.txt 文件),我们同样也可以利用 CMake 工具生成 Windows 上的 Visual Studio 工程文件。
通常在程序设计中采用xml、ini、yaml、json等配置文件比较多。在Java的SpringBoot项目中通常采用yaml或者yml文件作为应用的配置项。由于本人在实际项目中采用C++编写控制台程序的过程中使用yaml文件比较多,目前使用比较的多的就是yaml-cpp这个C++ yaml解析库了。之前写过两篇关于在CentOS7下编译yaml-cpp库和Windows10下使用VS2017编译和使用yaml-cpp库的文章。 最近实际项目中换成了最新版的Visual Studio 2019,我使用的Windows系统是Win7和Windows10,所以需要重新编译基于VS2019下的yaml-cpp的Debug和Release版本的Win32的静态lib库,大体步骤和Windows10下使用VS2017编译和使用yaml-cpp库这篇博客描述的一致。
偷懒了好久没有写分享了,最近的时间也是花费了很多时间大量优化了之前游戏服务器框架和组件的很多细节。其中,相对独立且同时也被其他的项目使用的一个工具则是基于 cmake 和 git 且兼容 vcpkg 的构建系统 cmake-toolset 。之所以要写这么个构建工具主要是要提供比 vcpkg 更宽容的兼容性(没办法我们公司的编译环境比较古老),并且提供更进一步的定制化能力(包含但不限于功能开关和下载源,这些东西 vcpkg 也是很后期才有了个初步的支持)。那么先来记录一下构建系统适配过程中的一些问题吧。
① 进入微软官网 : https://www.microsoft.com/zh-cn/
Cmake是跨平台构编译大型项目的工具,配合make工具和编译器我们理论上我们可以编译任何工程。具体的介绍就不多说了,不论是OpenCV还是Pytorch都是用cmake作为构建工具,当然还有很多很多工程项目使用它,这里不进行详细的介绍。
TDengine是一个高效的存储、查询、分析时序大数据的平台,专为物联网、车联网、工业互联网、运维监测等优化而设计。您可以像使用关系型数据库MySQL一样来使用它,但建议您在使用前仔细阅读一遍下面的文档,特别是 数据模型 与 数据建模。除本文档之外,欢迎 [下载产品白皮书](https://www.taosdata.com/downloads/TDengine White Paper.pdf)。
前不久,微软正式发布了 Visual Studio 2022,Visual Studio 2022 的主要功能包括:
查看cuda11支持的vs版本:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
error LNK2001: 无法解析的外部符号 __GSHandlerCheck_EH4 这是因为编译boost用的是vs2019,这里调用的是vs2017,用2017重新编译boost1.82
打开 Visual Studio , 点击右侧的 " 创建新项目 ( N ) " 选项 ;
更新于2019/10/22 20:16 有同学反馈说运行报错,笔者刚试了下,下载源码,然后通过Cmake编译,然后用VS2017运行没有问题。 在VS2017 15.9.10编译好的文件 /bin目录 笔者的 VS 版本是 VS2017 15.9.10 企业版 下载链接, 建议下载相同的版本。
结合微软文档,在server2016上需要安装1803版的WDK才可以成功安装WDTF
C++20 正式发布已经有一段时间了。其中 Text Formatting 是一个我个人比较感兴趣的新组件。它主要是解决了之前字符串格式化库 ( printf 系 ) 的效率问题和运行时安全的问题。 并且新的格式设置的形式也比较友好。相关规范和用法可以参见:
参考前文 windows 10安装CUDA和cuDNN,地址是:https://xugaoxiang.com/2019/12/18/windows-10-cuda-cudnn/, 这里不再赘述。
配置该环境主要是配合 Android 进行开发 , 目前 Android 中调用 C/C++ 代码使用的都是 CMake 构建项目 , 因此在次数 VS 中要使用 CMake 构建 FFMPEG 的开发环境 ;
目前,Visual Studio 2017/2019支持Azure Sphere开发,后续,微软会加入Visual Studio Code的支持。以Visual Studio 2019 Community为例(Pro版和Enterprise版也当然支持),用户需要先从官网下载。安装的时候,需要勾选Linux development with C++这个Workload,注意,还需要勾选C++ CMake tools for Linux和Embedded and IoT development tools这两个选项,如下图1所示。
.NET 以 MIT 协议开源,于是任何人都可以尝试对其进行一丢丢的修改以实现一些原本很难实现的功能,例如在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时。在这个例子中,我们修改了 AppHost 添加了一个可以定制 .NET 运行时路径的功能,这就需要我们能编译、修改和调试 dotnet/runtime 仓库里的 apphost 部分。
1 . JNI 简介 : JNI 是一套框架 , 能够让开发者在 Java 中调用 C / C++ 代码 , JNI 范围较广 , 凡是可以运行 Java 代码的地方 ( 如 Linux , UNIX , Windows , Android 等平台 ) , 都可以通过 JNI 接口 调用 C/C++ 代码 ;
CMake 详细说明参考官方文档 https://cmake.org/cmake/help/latest/index.html,其中latest为最新版本版本,不同 CMake 版本,API 有差异,请根据当前项目设置的最低版本来参考,高版本 API 在低版本无法使用。3.20之后的文档会标记该 API 的生效版本
http://www.ros.org/news/2014/09/microsoft-kinect-v2-driver-released.html
但是Android Studio中很尴尬的是CMake+ninja,是没法使用上述方法查看预处理和汇编的。那么久这样束手无策么?
cgal4.4编译vs2005版本,不支持,不知道能不能自己修改配置文件,记录一下,以后解决!!
首先,我们需要到微软官方网站上下载Visual Studio,这里使用Visual Studio 2019作为演示。进入下载页面后,点击下载 社区版本(Community) 即可,这个版本是免费的。如下图所示:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139829.html原文链接:https://javaforall.cn
编程语言的很多特性都是依赖于编译器的。比如,与 C 语言的枚举相比,Swift 的枚举就依赖编译器实现了关联值等高级特性。
领取专属 10元无门槛券
手把手带您无忧上云