ZXing-CPP是一个用C++实现的开源、多格式一维与二维条形码图像处理库。它最初是从Java ZXing库移植而来的,但经过进一步开发,现在在运行时和检测性能方面有了许多改进。它可以读取和写入多种格式的条形码。包括工业DM码、RQ码、以及其他常见的各种一维条形码。具体支持全部条码格式如下:
尽管 CMake 是跨平台的,在我们的项目中我们努力使源代码能够在不同平台、操作系统和编译器之间移植,但有时源代码并不完全可移植;例如,当使用依赖于供应商的扩展时,我们可能会发现有必要根据平台以略有不同的方式配置和/或构建代码。这对于遗留代码或交叉编译尤其相关,我们将在第十三章,替代生成器和交叉编译中回到这个话题。了解处理器指令集以针对特定目标平台优化性能也是有利的。本章提供了检测此类环境的食谱,并提供了如何实施此类解决方案的建议。
内容一览:TVM 共有三种安装方法:从源码安装、使用 Docker 镜像安装和 NNPACK Contrib 安装。本文重点介绍如何通过源码安装 TVM。
有了会听懂人类的讲话,还能做记录的编程助理艾极思,他们三人的讨论内容,都可以变成一份详细的会议纪要啦。
Vcpkg 可帮助您在 Windows、 Linux 和 MacOS 上管理 C 和 C++ 库。 这个工具和生态链正在不断发展,我们一直期待您的贡献!
本篇文章接上一篇,继续聊聊向量数据库领域,知名的开源技术项目:Milvus,在不同 CPU 架构的 macOS 环境下的编译安装。
QBDI全名为QuarkslaB Dynamicbinary Instrumentation,它是一个模块化的跨平台以及跨架构的DBI框架。该工具目前支持Linux、macOS、Android、iOS和Windows操作系统,支持的架构有x86、x86-64、ARM和AArch64架构。QBDI的模块化特征意味着它不需要包含任何首选的注入方法,并且可以结合外部注入工具一起使用。QBDI包含了一个基于LD_PRELOAD的小型Linux以及一个动态可执行的macOS注入器(QBDIPreload),它们是QBDI的Python绑定基础,即pyQBDI。QBDI还整合了Frida,一个动态指令工具集。
本篇文章接上一篇[1],继续聊聊向量数据库领域,知名的开源技术项目:Milvus,在不同 CPU 架构的 macOS 环境下的编译安装。
Apache TVM is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
测试是代码开发工具箱的核心组成部分。通过使用单元和集成测试进行自动化测试,不仅可以帮助开发者在早期检测功能回归,还可以作为新加入项目的开发者的起点。它可以帮助新开发者提交代码变更,并确保预期的功能得以保留。对于代码的用户来说,自动化测试在验证安装是否保留了代码功能方面至关重要。从一开始就为单元、模块或库使用测试的一个好处是,它可以引导程序员编写更加模块化和不那么复杂的代码结构,采用纯粹的、函数式的风格,最小化并局部化全局变量和全局状态。
距离笔者的《使用CEF》系列的第一篇文章居然已经过去两年了,在这么长一段时间里,笔者也写了很多其它的文章,再回看《使用CEF(一)— 起步》编写的内容,文笔稚嫩,内容单薄是显而易见的(主要是教大家按部就班的编译libcef_dll_wrapper库文件)。笔者一直以来的个性就是希望自己学习到的知识,研究出的内容,踩过的坑能够及时的写出来,介绍给更多的小伙伴。
注意: 插件可能依赖于需要基于GStreame的MediaPlayer安装的库,才能正常工作
内容一览:TVM 共有三种安装方法:从源码安装、使用 Docker 镜像安装和 NNPACK Contrib 安装。本文讲解如何通过 Docker 镜像 和 NNPACK Contrib 安装。
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。
Milvus 早期通过 FetchContent 和 ExternalProject 这些 CMake 内置方法自动下载依赖,在大部分情况下也够用,但随着 Milvus 内核的能力越来越丰富、依赖项也越来越多,例如要加入 Folly 使用它优化后的线程池、数据结构,要引入 opentelemetry-cpp 增强可观测性等。
Conan 2.0 版本已经发布很久了,配套的 cmake-conan 工具也同时得到了更新,在原有 Conan 1.x 版本上增强了功能,对开源项目和公司内部已有的 CMake 项目非常友好,接入简单。本文主要介绍 cmake-conan 的应用场景以及交叉编译的实战。
对于大多数项目,源代码是通过版本控制系统进行跟踪的;它通常作为构建系统的输入,构建系统将其转换为对象、库和可执行文件。在某些情况下,我们使用构建系统在配置或构建步骤中生成源代码。这可以用于根据在配置步骤中收集的信息来微调源代码,或者自动化原本容易出错的重复代码的机械生成。生成源代码的另一个常见用例是记录配置或编译信息以确保可复现性。在本章中,我们将展示使用 CMake 提供的强大工具生成源代码的各种策略。
由于macOS下的应用程序结构导致了CEF这样的多进程架构程序在项目结构、运行架构上有很多细节需要关注,这一块的内容比起Windows要复杂的多,所以本文将会聚焦macOS下基于CEF的多进程应用架构的环境配置,并逐一说明了CMake的相关用法和CEF应用配置细节。
本周我们精选出社区问答进行整理汇总,各位开发者在使用PaddlePaddle过程中遇到技术难题,可以到PaddlePaddle公众号【常见问答】专栏(点击主菜单中”定制服务“后可见)上寻求解决方案,希望能帮助新用户在MacOS安装过程中解答疑惑。
文档在所有软件项目中都是必不可少的:对于用户,解释如何获取和构建代码,并说明如何有效地使用您的代码或库,对于开发者,描述库的内部细节,并帮助其他程序员参与并贡献于您的项目。本章将展示如何使用 CMake 构建代码文档,使用两个流行的框架:Doxygen 和 Sphinx。
Sinter是一款针对macOS v10.15及其以上版本的100%用户模式终端安全代理,该工具基于Swift语言开发,使用了用户模式EndpointSecurity API来订阅和接收来自macOS内核的授权回调,这里主要针对的是安全相关的事件类型。Sinter的当前版本支持允许/拒绝进程执行,在将来的版本中,我们打算支持其他类型的事件,比如说文件操作、套接字和内核事件等等。
最近因为一些学习的原因,需要使用一款跨平台的轻量级的GUI+图像绘制 C/C++库。经过一番调研以后,最终从GTK+、FLTK中选出了FLTK,跨平台、够轻量。本文将在Windows、macOS以及Linux Debian三套操作系统环境,对FLTK进行编译,并搭建简单Demo。这其中也有少许的坑,也在此文进行记录。
前段时间有同事联系我想看看可能推广我之前写的协程库 libcopp,虽然 libcopp 已经用到过好几个项目上,这几年也断断续续地写了一些实现细节的文章,但是也但确实需要系统、概览性地介绍下 libcopp ,所以就有了这篇文章。
ImHex是一款功能强大的十六进制编辑器,该工具专为逆向工程分析师、编程开发人员以及那些想好好保护自己眼睛的安全人员所设计。哪怕你每天工作到凌晨三点(虽然不建议),也不会伤害你的眼睛!
刚开始做纯 C++ 跨端的项目时,为了考虑项目的统一工程化管理选择使用 CMake + Conan,因为各平台下使用的工具链、 IDE 都不一样。如 Windows 更多人习惯使用 Visual Studio IDE、针对 iOS 和 macOS 的开发更多人喜欢使用 Xcode,而 Linux 开发往往是 VSCode 配套。针对不通平台的 CMake 初始化命令都不太一样,主流的配置有如下几种:
在使用CMake构建项目时,您可能会遇到一个错误消息:“ninja Compiling the C compiler identification source file CMakeCCompilerId.c failed”。这个错误可能会让您感到困惑,并且不知道如何解决。在本篇博客文章中,我将为您解释这个错误的原因,并提供一些可能的解决方案。
OpenCV是一个跨平台的计算机视觉库,可以运行在Windows、Linux、MacOS等操作系统上。OpenCV提供了众多语言的接口,其中就包含了Python,Python是一门上手容易、使用起来十分让人愉悦的语言,利用Python学习OpenCV,相信能更快的获得效果。
Jackalope是一个可定制的、分布式的、基于覆盖率引导的模糊测试工具,该工具能够以黑盒测试的方式处理二进制文件,并且支持Windows和macOS操作系统。
对大型项目来说,必然会有很多的依赖项。特别是现代化的组件都会尝试去复用社区资源。而对于C/C++而言,依赖管理一直是一个比较头大的问题。 很多老式的系统和工具都会尝试去走相对标准化的安装过程,比如说用 pkg-config 或者用系统自带的包管理工具装在系统默认路径里。 当然这样很不方便,也不容易定制组件。我使用 cmake 比较多,所以一直以来在我的 atframework 项目集中有一个 utility 项目 atframe_utils,里面包含一些常用的构建脚本。 并且在 atsf4g-co 中实现了一些简单的包管理和构建流程。
OpenCV-4.0.0已经放出来一阵日子了,很有新功能新特性值得尝试,由于MacOS上的brewhome包中编译好的OpenCV版本只有3.4.3,为了在MacOS上安装最新的OpenCV,只好走源码编译这条路了。
B(l)utter是一款针对Flutter移动端应用程序的逆向工程分析工具,当前版本的B(l)utter仅支持Android libapp.so(ARM64),可以帮助广大研究人员对基于Flutter开发的移动端应用程序进行逆向工程分析。
Java中有很多日志库:java.util.logging、Log4j、Logback、Log4j2、slf4j、common-logging。C++的日志库相对来说就比较少了,比如说glog、log4cpp、spdllog等,目前个人感觉比较好用的C++开源日志库当属于spdlog了,跨平台,支持cmake编译,在维护中。 具体可以参考github上面的示例:https://github.com/gabime/spdlog 另外spdlog支持两种使用方式:一种是将源代码目录下的include头文件直接添加到自己的项目中使用;另一种使用cmake编译构建出lib静态库或者dll动态库之后以静态和动态链接方式使用。
Cmake是跨平台构编译大型项目的工具,配合make工具和编译器我们理论上我们可以编译任何工程。具体的介绍就不多说了,不论是OpenCV还是Pytorch都是用cmake作为构建工具,当然还有很多很多工程项目使用它,这里不进行详细的介绍。
这个版本重点重构优化了下内部并行构建机制,实现多个target间源文件的并行编译,以及并行link的支持,同时优化了xmake的一些内部损耗,修复影响编译速度的一些bug。 通过测试对比,目前的整体构建速度基本跟ninja持平,相比cmake/make, meson/ninja都快了不少,因为它们还额外多了一步生成makefile/build.ninja的过程。
它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
Clion 是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。CLion帮助开发人员使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。
RustDesk 是一个基于 Rust 开发的开源远程桌面,TeamViewer 的替代品。RustDesk 开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器, 或者自己设置, 亦或者开发您的版本。
LibTorch是PyTorch深度学习框架的C++版本,它提供了用于构建和训练神经网络模型的高级API和工具。LibTorch允许你在离线环境中使用PyTorch模型,而无需依赖Python解释器。
英特尔开放式图像降噪是一个开源库,其中包含高性能、高质量的去噪滤波器,适用于使用光线追踪渲染的图像。
在前几章中,我们已经展示了如何使用 CMake 配置、构建和测试我们的项目。安装项目是开发者工具箱中同样重要的一部分,本章将展示如何实现这一点。本章的节涵盖了以下图中概述的安装时操作:
每个项目都必须处理依赖关系,而 CMake 使得在配置项目的系统上查找这些依赖关系变得相对容易。第三章,检测外部库和程序,展示了如何在系统上找到已安装的依赖项,并且到目前为止我们一直使用相同的模式。然而,如果依赖关系未得到满足,我们最多只能导致配置失败并告知用户失败的原因。但是,使用 CMake,我们可以组织项目,以便在系统上找不到依赖项时自动获取和构建它们。本章将介绍和分析ExternalProject.cmake和FetchContent.cmake标准模块以及它们在超级构建模式中的使用。前者允许我们在构建时间获取项目的依赖项,并且长期以来一直是 CMake 的一部分。后者模块是在 CMake 3.11 版本中添加的,允许我们在配置时间获取依赖项。通过超级构建模式,我们可以有效地利用 CMake 作为高级包管理器:在您的项目中,您将以相同的方式处理依赖项,无论它们是否已经在系统上可用,或者它们是否需要从头开始构建。接下来的五个示例将引导您了解该模式,并展示如何使用它来获取和构建几乎任何依赖项。
AppCode 是一个跨平台的集成开发环境 (IDE),适用于 Swift、Objective-C、C++ 和其他编程语言。它由 JetBrains 开发,提供高级编码帮助、重构工具和调试功能。AppCode 支持多种构建系统,包括 Xcode、CMake 和 Makefiles,并与 Git、SVN 和 Mercurial 等版本控制系统集成。它还包括一个强大的代码分析引擎,可以实时检测错误、内存泄漏和性能问题。总的来说,AppCode 是希望在 iOS、macOS 和其他 Apple 平台上工作时提高生产力和效率的开发人员的热门选择。
OC 的底层研究结束后,下面我们研究 Swift 底层,研究 Swift 底层首先要对 Swift 源码进行编译,下面我们就来编译一下 Swift 源码
在强化学习里面我们需要让agent运行在一个环境里面,然鹅手动编环境是一件很耗时间的事情, 所以如果有能力使用别人已经编好的环境, 可以节约我们很多时间。 OpenAI gym 就是这样一个模块, 他提供了我们很多优秀的模拟环境. 我们的各种 RL 算法都能使用这些环境.。
CMake 详细说明参考官方文档 https://cmake.org/cmake/help/latest/index.html,其中latest为最新版本版本,不同 CMake 版本,API 有差异,请根据当前项目设置的最低版本来参考,高版本 API 在低版本无法使用。3.20之后的文档会标记该 API 的生效版本
CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。
推荐一个比较好用的流媒体服务开源代码: ZLMediaKit: 实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求 https://gitee.com/xiahcu/Z
如果你只是想尝试一个使用Solidity的小合约,你不需要安装任何东西,只要访问基于浏览器的Solidity。
如果没有安装的话会上面的指令会自动触发 XCode 下载并安装,根据提示安装完成之后再使用上面的指令检查一遍即可。
领取专属 10元无门槛券
手把手带您无忧上云