首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

conan入门(八):交叉编译自己的conan包项目

在使用conan来管理C/C++包(制品库)的环境下,如何实现对conan包封装的项目实现交叉编译的支持呢?因为我的工作涉及不少嵌入式平台的开发,conan交叉编译的支持是我最关心的部分。...本文还以 jsonlib 为例,说明如何将自己的封装成conan的模块实现交叉编译。...已经写好了交叉编译工具链文件 conan_example/cmake/ds5-arm-linux-gnueabihf.toolchain.cmake 我们需要通过定义环境变量CONAN_CMAKE_TOOLCHAIN_FILE...关于CONAN_CMAKE_TOOLCHAIN_FILE及其他conan环境变量定义更详细说明参见Conan官方文档《Environment variables》 conan install(交叉编译...conan封装项目生成交叉编译conan二进制包发布的过程: 开始麻烦些,需要工具链文件,并设置环境变量CONAN_CMAKE_TOOLCHAIN_FILE。

1.9K40

conan入门(十二):Windows NDK 编译 boost报错:CMake was unable to find a build program .... MinGW Makefile

conan NDK 编译 boost报错:CMake was unable to find a build program corresponding to “MinGW Makefiles” 今天在Windows...平台如下正常执行conan NDK交叉编译Boost库时报了个错 $ conan install boost/1.69.0@ -pr:h android_21_armv7a_clang -pr:b default...--build missing 错误日志如下,看样子是在编译依赖库bzip2出错了,还没到编译boost的阶段 bzip2/1.0.8: Configuring sources in C:\Users...但我还是觉得不太对,Android NDK交叉编译为什么需要MinGW(mingw64 )编译器呢?这不合理啊。...CMake的GENERATOR,导致某些库的编译脚本误定义为MinGW Makefiles,下面是解决方法: 就是需要设置环境变量CONAN_CMAKE_GENERATOR为Unix Makefiles

1.7K10

conan入门(十七):支持android NDK (armv7,armv8,x86,x86_64)交叉编译的统一profile jinja2模板

conan:支持android NDK (armv7,armv8,x86,x86_64)交叉编译的统一profile jinja2模板 上一篇博客《conan入门(十六):profile template...功能实现不同平台下profile的统一》以Android NDK交叉编译为例介绍了jinja模板在conan profile中的应用。...本文在此基础上,更进一步改进将android NDK 对不同平台armv7,armv8,x86,x86_64交叉编译的profile基本于同一个模板统一实现 android_clang.jinja 如下是基于.../conan/cmake/conan_ndk_toolchain.cmakecmake 工具链文件 # # ANDROID NDK默认提供的android.toolchain.cmake...android_clang_x86.jinja ├── android_clang_x86_64.jinja └── default 那么不论是Linux还是Windows都可以如下执行交叉编译

1.4K40

conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义

conan NDK交叉编译自己的conan包项目塈profile的定义 上一篇博客《conan入门(八):交叉编译自己的conan包项目》中我们以jsonlib为例说明了如何将交叉编译自己封装成conan...本文还以 jsonlib 为例,说明如何将自己的封装成conan的模块使用Android NDK实现交叉编译。...profile 上一篇博客《conan入门(八):交叉编译自己的conan包项目》中我们是以如下指定来执行交叉编译的。...CONAN_CMAKE_TOOLCHAIN_FILE=$android_ndk/build/cmake/android.toolchain.cmake [conf] tools.android:ndk_path...conan封装项目执行Android NDK交叉编译conan二进制包发布的过程: 开始麻烦些,需要准备profile(可复用),后面就很简单 : conan create 完成交叉编译 conan

1.2K30

conan入门(十):Windows下Android NDK交叉编译Boost

conan Windows下Android NDK交叉编译Boost 上一篇博客《conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义》中我们以jsonlib为例说明了如何NDK...交叉编译自己封装成conan的模块及定义profile简化编译的方式。...这次Android NDK交叉编译Boost库,才真正体现了conan的好处,定义好profiile后,只需要执行conan install就可以完成交叉编译过程,缺少的依赖库会自动被编译,真是很方便。...ndroid_ndk及CONAN_CMAKE_TOOLCHAIN_FILE在定义路径改为使用Windows下标准的路径分割符\(如果是在Linux下执行要用/做路径分割符)。...conan NDK交叉编译不会编译stacktrace,而且会导致编译结束后报错,需要分析boost的conanfile.py脚本才能找到原因. conan install执行成功后,就会将生成的二进制包保存在本地仓库

1.7K20

conan入门(二十四):通过CONAN_DISABLE_CHECK_COMPILER禁用编译器检查

conan 通过CONAN_DISABLE_CHECK_COMPILER禁用编译器检查 最近工作的一个单片机项目项目,用了一款不知名的芯片,坑爹的开发商提供的编译器中有C++编译器,但是不能正常工作。...项目结构成型我打算将项目编译转为使用conan来管理。在安装项目的依赖库cjson的时候,出错了。...) 出错误的原因很简单, 因为单片机的C++编译器不能用,所以我在conan profile文件中没有定义环境变量CXX,在cmake工具链文件中也没有定义CMAKE_CXX_COMPILER指定C++...编译CMAKE_CXX_COMPILER, cmake自动在PATH搜索路径中找到了我的Windows平台的MinGW编译器,MinGW编译的版本与单片机编译器版本(profile中settings.compiler.version...这里的CONAN_DISABLE_CHECK_COMPILER不是环境变量是cmake变量,所以要将在cmake交叉编译工具链文件添加下面这一行就好了 SET(CONAN_DISABLE_CHECK_COMPILER

81620

CC++ 构建系统,我用 xmake

也许,有人会说,编译器总需要安装的吧。这也不是必须的,因为 XMake 的包管理也支持自动远程拉取需要的各种编译工具链,比如:llvm, Mingw, Android NDK 或者交叉编译工具链。...除了 mingw-w64,我们还可以配置远程拉取使用其他的工具链,甚至交叉编译工具链,例如:llvm-mingw, llvm, tinycc, muslcc, gnu-rm, zig 等等。...傻瓜式多平台编译 XMake 的另外一个特点,就是高效简单的多平台编译,不管你是编译 windows/linux/macOS 下的程序,还是编译 iphoneos/android 又或者是交叉编译。...交叉编译 我们通常只需要设置交叉编译工具链根目录,XMake 会自动检测工具链结构,提取里面的编译器参与编译,不需要额外配置什么。...的交叉工具链配置文件。

2K20

conan入门(十九):封装第三方开源库cpp_redis示例

交叉编译引用第三方库示例》),以及如何将自己的项目封装为Conan包以供第三方引用(《conan入门(七):将自己的项目生成conan包》)。...我看了Conan 中央仓库的说明,发现要自己将一个第三方贡献到conan-center-index.还是很麻烦的,需要补充学习更多的conan相关知识,还需要通过很多平台的编译测试。...): cmake = CMake(self) cmake.definitions["BUILD_TESTS"] = False cmake.definitions...) cmake.build() ########################################################## # 项目打包,一旦编译成功执行...search cppredis/4.3.1@会显示本地仓库二进制包的信息 conan upload 项目编译成功就可以执行conan upload上传到私有制品库了: conan upload cpp_redis

1.2K30

conan入门(三):上传预编译的库(artifact)

conan 上传预编译的库(artifact) 我们经常需要从现有二进制文件创建包,比如第三方或供应商提供的C/C++库(只有include和lib),或在引入conan管理包之前手工编译编译好C/C+...所以以下情况我们可以考虑直接将本地已经编译好的二进制文件生成conan包: 当您无法从源代码构建包(当只有预编译的库可用时)。...这时我只需要将编译好的工件快速提供给使用方而不需要重新编译,因此您不想调用 conan create。如果您使用 IDE 或在本地调用 conan build命令,此方法将保留您的构建缓存。...' files: cjson-release.cmake, cjson.cmake, cJSONConfig.cmake, cJSONConfigVersion.cmake cjson/1.7.15@cjson...os,compiler,compiler.version,arch参数用于指定该包的交叉编译环境,如果未指定这些参数,则从$HOME/.conan/profiles/default读取默认值 这些字段不是随便填的

2.8K20

Xmake 和 CC++ 包管理

CMake 中使用 ConanCMake 中使用 conan 集成 C/C++ 包,我们需要提供额外的 CMake Wrapper 脚本,以类似插件的方式注入进自己的工程中去。...${CMAKE_BINARY_DIR}/conan.cmake") message(STATUS "Downloading conan.cmake from https://github.com/conan-io.../cmake-conan") file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/v0.16.1/conan.cmake...另外,Xmake 会自动帮你调用 vcpkg/conan install 安装命令去安装依赖包,然后集成它们,不需要用户做任何其他事情,仅仅只需要执行 xmake 一键编译。...模块都是可以支持 mingw/cross/iphoneos/android 等交叉编译平台和工具链的,xmake 会自动传递对应的工具链进去,用户不需要做任何其他事情。

2.8K10

使用 ConanCMake 组织跨平台 Qt 工程

创建 Qt 工程,我们通常使用 Qt 提供的 Online installer 安装 Qt Creator 和 Qt 库来创建、编译、发布 Qt 项目,这对开发环境和 CI Agent 环境有较强的要求...,一旦环境安装不对或者安装缺少了一些组件,可能导致无法编译出产物。...添加 cmake 是为了能通过 CMakeLists.txt 来组织工程,引入头文件路径、库文件路径等信息 另外,由于 Qt 6.2.4 在 macOS 下编译因为 CMake 和 Qt 依赖的 openssl...Debug,conan.cmake 需要确定你当前正在使用哪种编译配置以决定如何下载和编译三方库 if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE...和 CONAN_PROFILE_HOST 参数以决定是否使用交叉编译,这里暂时不讨论 # 如果不是交叉编译,则调用 conan_cmake_autodetect 自动监测当前 CMake 环境配置,如

55031

简单的 CC++ 项目自动化构建--Xmake

IDE相关的工程文件,采用直接编译,并且更加的方便易用 采用lua的工程描述语法更简洁直观,支持在大部分常用平台上进行构建,以及交叉编译。...能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...项目地址: GitHub - xmake-io/xmake: A cross-platform build utility based on Lua 增长趋势图, 比cmake简单好用,有超越cmake...有时候要编译一个库,这个库又依赖其他的库,需要我们自己去搜索,下载,解压,编译安装,不同的平台编译方法有差异,编译好了又有可能发现需要的库的版本和我们下的不一致,工作要重头再来。...后来发现c、c++ 也有些包管理器,比如微软的Vpckg在visual studio下使用;conan 有可能成为事实标准的包管理器,配合cmake,应用还是比较广泛。

1.3K10

xmake v2.6.3 发布,支持 vcpkg 清单模式

我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...目前,Xmake 主要用于 C/C++ 项目的构建,但是同时也支持其他 native 语言的构建,可以实现跟 C/C++ 进行混合编译,同时编译速度也是非常的快,可以跟 Ninja 持平。...这允许使用 CMake 来构建您的项目,同时使用 Xrepo 来管理依赖包。这个项目的部分灵感来自 cmake-conan。...例如:vcpkg::zlib, conan::pcre2 Conan xrepo_package("conan::gflags/2.2.2") Conda xrepo_package("conda::...#1923: 改进构建 linux 驱动,支持设置自定义 linux-headers 路径 #1962: 改进 armclang 工具链去支持构建 asm #1959: 改进 vstudio 工程生成器

1.4K30

使用 CMakePresets.json 简化 CMake 项目初始化繁杂步骤

痛苦 本地开发需要输入参数太多 刚开始做纯 C++ 跨端的项目,为了考虑项目的统一工程化管理选择使用 CMake + Conan,因为各平台下使用的工具链、 IDE 都不一样。...指定的参数 default 依赖本地 conan 环境的初始化 profile 的配置,里面的配置可能不同开发机器上都不一样,对工程在不同设备上编译带来很大的挑战,非常容易编译出错。...要针对某个平台加一个配置需要改多处位置,同样非常容易出错不易维护。 目标 经过多个项目跨平台编译构建的洗礼,很难忍受在切换项目过程中频繁的敲入命令去初始化 CMake 工程。...所以我们期望对项目工程化改造的目标不仅仅是解决上面的痛苦问题,更期望能让开发人员在接手项目不需要在编译工具链、工程配置上花费太多的心思,让主流的开发工具打开工程开箱即用。...指令携带 –preset 参数即可编译指定平台、架构的产物,如: cmake --preset=ios-release-arm64 cmake --build --preset=ios-release-arm64

2.1K20
领券