在 Xmake 中使用依赖包 Xmake 不仅提供了内置的 xmake-repo 内置的包管理仓库,可以直接集成使用里面的包,还支持以相同的集成方式,去快速集成 vcpkg/conan 等第三方的依赖包...完全没关系,理论上,你可以通过 Xmake 使用整个 C/C++ 生态 90% 的常用依赖包,就是因为 Xmake 可以快速从各种其他包管理器中集成包来使用。...但是这完全没有关系,因为我们可以使用任意包仓库中的包。 如果在 CMake 中使用 vcpkg,我们只能使用 1859 个包。 如果在 CMake 中使用 conan,我们只能使用 1218 个包。...甚至,C/C++ 包不够,其他语言的包也可以拿过来用,例如:Xmake 也支持从 dub/cargo 等 Dlang/Rust 的包管理器中拉取包,给 C/C++ 项目使用。...CMake 维护的静态库,而根目录下使用了 Xmake 来维护,我们可以在 xmake.lua 中通过定义 package("foo") 包来描述如何构建 foo 代码库。
,一个用 Python 编写的 C/C++ 包管理器。它是完全分散的,你可以自己托管服务器中的包。...你还可以在 Conan-Center[1] 寻找或分享你的 C/C++ 包。...它方便与 Visual Studio 集成,你可以使用 vcpkg search 搜索可用的包。它也可以从 Bitbucket、GitHub、GitLab 等获取包。...是一个 C 包管理器(非 C++),使用起来较简单。...它具有直观且易于使用的界面(像 npm 和 Cargo 一样)。独特的是,你可以在不了解 CMake 的情况下使用 poac 开发应用程序和库,专注于学习 C++ 而不会绊倒。
♣ 题目部分 在Oracle中,模糊查询可以使用索引吗?...♣ 答案部分 分为以下几种情况: (1)若SELECT子句只检索索引字段,那么模糊查询可以使用索引,例如,“SELECT ID FROM TB WHERE ID LIKE '%123%';”可以使用索引...如果字符串ABC在原字符串中位置不固定,那么可以通过改写SQL进行优化。改写的方法主要是通过先使用子查询查询出需要的字段,然后在外层嵌套,这样就可以使用到索引了。...④ 建全文索引后使用CONTAINS也可以用到域索引。...'AA%') filter(REVERSE(SUBSTR("TABLE_NAME",1,LENGTH("TABLE_NAME")-4)) LIKE 'AA%') --如果字符串ABC在原字符串中位置不固定
conan: 封装第三方开源库cpp_redis示例 在我的之前关于conan系列博客中,已经介绍过如何引用Conan中央仓库(conan-center)预定义的第三库(《conan入门(五):conan...这样就可以直接用conan create命令生成第三方库,并用conan upload 命令将生成的第三方库上传到自己的私有仓库。只能为自己团队使用。...cpp_redis是一个C++11实现的redis client库,我的项目中需要使用它,但它目前并没有被Conan中央仓库收录,所以本文以cpp_redis为例介绍将第三方库封装为Conan包的过程。...,如4.3.1,也可以填git分支名 # # 填版本号,source()方法在克隆代码后会自动切换到指定的tag # # 填分支名,source()方法在克隆代码后会自动切换到指定的分支...search cppredis/4.3.1@会显示本地仓库二进制包的信息 conan upload 项目编译成功就可以执行conan upload上传到私有制品库了: conan upload cpp_redis
另外,新版本中,我们还重新实现了新版的本地包生成方案,完全无缝支持 add_requires 和 add_packages,从此远程包和本地包可以使用统一的集成方式来维护。...也可以在 xmake.lua 中添加: add_repositories("local-repo git@github.com:xmake-mirror/myrepo-artifacts.git")...从第三方仓库搜索包 xmake 内置的 xrepo 包管理器命令,之前可以支持搜索 xmake-repo 仓库中的内置包。...vcpkg, conan, conda 以及 apt 等第三方包管理器中搜索它们的包,只需要加上对应的包命名空间就行,例如: $ xrepo search vcpkg::pcre The package...#1422: 支持从 vcpkg, conan 中搜索包 #1424: 设置 binary 作为默认的 target 目标类型 #1140: 支持安装时候,手动选择从第三包包管理器安装包 #1339:
本文详细介绍了近期我们在JFrog Xray中添加的新功能,以帮助客户保持其准时发布的效率、质量,和安全性。...Conan是C/C++语言的依赖和程序包管理器,是开源的解决方案,可在所有OS平台上使用。它与所有构建系统(如CMake和Visual Studio等),以及专有系统集成在一起。...的程序包 · 如果您正在构建Conan软件包并将Xray集成到CI流程中,则Xray将扫描那些Conan的构建 · 即使您不使用Conan,Xray也会扫描您的C++构建 三、支持CVSS v3版本 为了在...Xray从两个不同的来源收集评分和严重性: · NVD:美国国家漏洞数据库,包含已知漏洞及其各自的CVSS分数; · OS软件包安全咨询:某些开源操作系统具有自己的安全跟踪系统,可以进一步分析操作系统软件包中的漏洞...这意味着使用RPM软件包的企业可以放心地将JFrog平台用作其DevSecOps平台。
能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...下载安装 windows下,安装包地址: https://github.com/xmake-io/xmake/releases 或者使用powershell Invoke-Expression (Invoke-Webrequest...安装后,配置path路径,然后就可以使用了如下: add_requires("conan::poco/1.9.4", {alias = "poco", debug = true}) 添加代理 注意添加代理...后来发现c、c++ 也有些包管理器,比如微软的Vpckg在visual studio下使用;conan 有可能成为事实标准的包管理器,配合cmake,应用还是比较广泛。...在xmake.lua下写就更简单了,增加一句话就行: add_requires("zlib 1.2.11") 还可以用其他包管理器的包,比如: add_requires("vcpkg::zlib 1.2.11
同时,xrepo 也支持从 vcpkg/homebrew/conan 等第三方包管理器中安装包,并提供统一一致的库链接信息,方便与第三方项目的集成对接。...安装 我们只需要安装上 xmake 就可以使用 xrepo 命令,关于 xmake 的安装,我们可以看下:xmake 安装文档。...检索安装包之外, 我们还可以添加任意多个自建的仓库,甚至可以完全隔离外网,仅仅在公司内部网络维护私有包的安装集成。...快速上手 安装包 基本使用 $ xrepo install zlib tbox 安装指定版本包 完整支持 Semantic Versioning (语义版本)。...-lz 导出安装后的包 xrepo 可以快速导出已经安装后的包,包括对应的库文件,头文件等等。
conan 引用第三方库示例 Conan 是 C 和 C++ 语言的依赖项和包管理器。...通过完整的二进制包管理,它可以为任意数量的不同版本的包创建和重用任意数量的不同二进制文件(用于不同的配置,如架构、编译器版本等),在所有平台上使用完全相同的过程。...conan 包命名约定 标准的conan 包名引用(reference)格式是:package_name/version@user/channel,用于在制品仓库中唯一的识别一个包 package_name...,包名中package_name/version是必须要有的字段.user,channel都是可选字段,上传用户在上传包时可以不指定。...官方文档《conanfile.txt》 conan search 创建conanfile.txt过程中我们可以通过conan search cjson -r conancenter查看远程conan中央仓库有哪些
conan 交叉编译自己的conan包项目 上一篇博客《conan入门(七):将自己的项目生成conan包》中我们以jsonlib为例说明了如何将自己的模块封装成conan提供给第三方使用。...在物联应用的大背景下,C/C++开发中跨平台交叉编译的应用是非常广泛的。在使用conan来管理C/C++包(制品库)的环境下,如何实现对conan包封装的项目实现交叉编译的支持呢?...jsonlib) 创建了conanfile.py后,编译conan包非常简单 # 注意是 conan_example jsonlib分支 $ cd conan_example # 将conan包(conanfile.py...=4.8 指定交叉编译的目标平台编译器及版本 -pr:b default 指定使用名为default的profile文件 –build missing 如果依赖包中没有找到预编译的二进制包则从源码编译.../1.0.0@会显示二进制包的信息 conan create 上面执行交叉编译jsonlib使用了两条命令conan exoprt 和conan install 其实可以用一条conan create
conan NDK交叉编译自己的conan包项目塈profile的定义 上一篇博客《conan入门(八):交叉编译自己的conan包项目》中我们以jsonlib为例说明了如何将交叉编译自己封装成conan...profile 上一篇博客《conan入门(八):交叉编译自己的conan包项目》中我们是以如下指定来执行交叉编译的。...Conan官方推荐的profile文件定义方式来为conan install 提供编译参数 Conan官方文档:《Using Profile》 使用conan profile文件,我们不仅可以声明settings...将识别我们的二进制文件(host设置),还可以声明使用工具链或交叉编译器所需的所有环境变量。...包非常简单 # 注意是 conan_example jsonlib分支 $ cd conan_example # 将conan包(conanfile.py 和相关文件,不包括编译生成的二进制包)复制到本地仓库
这允许使用 CMake 来构建您的项目,同时使用 Xrepo 来管理依赖包。这个项目的部分灵感来自 cmake-conan。...使用这些变量在 CMake 代码中设置包含和库路径。...除了从官方维护的存储库安装软件包之外,Xrepo 还可以安装来自第三方包管理器的包,例如 vcpkg/conan/conda/pacman/homebrew/apt/dub/cargo。...如果一些配置,无法在 on_load 中过早配置,那么都可以在 on_config 中去配置它。...pac.lua,就可以直接使用它来加速 github 源的下载。
而本文将主要介绍 cmake-conan v2 版本中一些新的特性和使用姿势,看看新版本中解决了历史哪些问题以及我们要如何在实际开发场景中替换新的方案。...工程实战 cmake-conan v2 维护在 develop2 分支,要求 conan 版本必须大于 2.0.5(使用 1.60.2 + CONAN_V2_MODE 也不行)。...通过 CMake 初始化指定配置文件的方式来与 Conan 交互解决了以前我们业务 CMake 代码中包含了大部分对于 Conan 包处理的逻辑,以前的使用场景下如果脱离 Conan 业务的 CMake...这里有一点要注意的是,针对 Android 平台我们在 cmake-conan v1 时使用的一些 CMAKE 变量在 cmake-conan v2 中是无效的,比如 CMAKE_SYSTEM_VERSION...集成效果 我们在 GitHub 提交了一个简单的 Sample 用以演示集成的效果,可访问:https://github.com/nmgwddj/conan-cmake-v2-example 查看示例代码
conan 将自己的项目生成conan包 在之前的博客《conan入门(四):conan 引用第三方库示例》中我们以cJSON为例说明了如何在项目中引用一个conan 包。...如何将自己设计的模块以conan包形式打包提供给第三方(客户/同事)使用?...有了模板,在之上修改就可以了: $ conan new jsonlib/1.0.0 --template cmake_lib File saved: CMakeLists.txt File saved:...new 命令使用的 --template cmake_lib 参数是Conan的一项目还在实验中的功能,根据指定模板生成Conan项目框架,详细说明参见Conan官方文档:《Package scaffolding...create (编译jsonlib) 创建了conanfile.py后,编译conan包非常简单 # 注意是 conan_example jsonlib分支 $ cd conan_example $
“但对于可执行程序(binary)项目,我们通常会提交Cargo.lock,这样可以确保所有的开发者和部署环境都使用相同的依赖版本。”...“ ”虽然Maven没有直接类似于Cargo.lock的文件,但我们可以在pom.xml中明确所有版本,并利用来锁定它们。”...1.6.3 C++世界如何确保构建稳定可靠 席双嘉:“在C++的世界里,我们也有类似Rust中的Cargo.lock机制,就是用Conan这个工具。”...“虽然CMake本身并没有内建的生成锁文件的功能,但它可以找Conan这样的包管理器作为搭子,通过Conan来管理依赖和版本,也就能间接实现锁定机制了。”...“在CMake的项目里,你可以在CMakeLists.txt文件中包含Conan的配置,然后通过链接Conan管理的库来构建应用程序。”
Conan 可以在每个平台上使用相同的命令和流程创建、上传和下载二进制文件,从而节省大量开发和持续集成时间。二进制兼容性甚至可以在每个包的基础上进行配置和定制。...conan 连接JFrog Artifactory 在本文开始就已经安装了conan,现在私有的JFrog Artifactory制品库已经安装就绪,就可以将这制品库添加到conan的制品库列表来使用了...它仅存在于源存储库中,而不存在于包中。...conan search 我们现在可以执行conan search验证二进制包文件是否在conan本地仓库中: $ conan search Existing package recipes: hello...stable)就可以上传的包: 参考资料 《conan的安装、使用、创建包、上传包等一系列操作》 《Getting started》 《Uploading Packages to Remotes》
讲动人的故事,写懂人的代码 故事梗概: 在她所维护的老旧Java系统即将被淘汰的危机边缘,这位在编程中总想快速完事的女程序员,希望能转岗到公司内部使用Rust语言的新项目组,因此开始自学Rust; 然而...2.4.2 C++世界如何确保构建稳定可靠 席双嘉:“嗨,你知道吗?在C++的世界里,我们也有类似Rust中的Cargo.lock机制,就是用Conan这个小工具。”...“Conan,这可是专门为C++量身打造的包管理器哦,它能帮我们处理所有的依赖和版本控制问题,让项目构建得稳稳当当。”...“虽然CMake本身并没有内建的生成锁文件的功能,但它可以跟Conan这样的包管理器搭个档,通过Conan来管理依赖和版本,也就能间接实现锁定机制了。”...“在CMake的项目里,你可以在CMakeLists.txt文件中包含Conan的配置,然后通过链接Conan管理的库来构建应用程序。”
今日北京凌晨时间 4 点 37 分,GitHub 在官方 Twitter 上正式宣布,推出自家的软件包托管服务 - GitHub Package Registry。 ?...开发者们以后可以很方便的将安装包与源代码都托管在 GitHub 上了。 ? 本次提供的安装包托管服务是完全免费的,你可以选择公开发行安装包,或仅给公司内部团队成员使用。 ?...功能介绍 下面为大家介绍下 GitHub Package Registry 提供的一些核心功能。 便捷的搜索 与 GitHub 一样,你可以在该托管平台上搜索、发现自己需要的安装包。 ?...现在,你也可以通过集成 GitHub API、GitHub Action、webhook 等工具来定制安装包的部署方案。 ?...放心,GitHub CEO 已在推上表示,这个包管理器将在后续提供支持。 ? 我相信,C++ 的 Conan 和 PHP 的 Composer 也应该在后续不久都会开放支持。
它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。...我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...zypper 包管理器支持 新增 OpenSUSE 的 zypper 包管理器支持,可以直接通过 zypper 自动下载安装,并集成它提供的包。 感谢 @iphelf 的贡献。...#3892: 改进包搜索,支持从描述中找包 #3916: 改进构建 swift 程序,支持模块间符号调用 更新 lua 运行时到 5.4.6 Bugs 修复 #3755: 修复 find_tool...从 xmake/packages 中查找程序 #3787: 修复从 conan 2.x 中使用包 #3839: 修复 conan 2.x 包的 vs_runtime 设置
好不容易当前平台搞定了,换到其他平台,有需要重新折腾一遍依赖包,为了解决这个问题,出现了一些第三方的包管理器,比如 vcpkg/conan/conda等等,但有些不支持语义版本,有些支持的平台有限,但不管怎样...XMake 和 Conan 接下来是集成 Conan 的包,完全一样的方式,仅仅执行换个包管理器名字。.../*.c") add_packages("zlib") XMake 同样会自动安装 conan 中的 zlib 包,然后自动集成编译。...不仅如此,我们开可以对定制化配置对自建包的依赖,例如: 使用调式版本依赖包 我们可以使用 debug 版本库,实现对依赖库的断点调试。...,XMake 会优先查找使用系统上用户已经安装的库,当然我们也可以强制禁止查找使用系统库,仅仅从自建包仓库中下载安装包。
领取专属 10元无门槛券
手把手带您无忧上云