vcpkg交叉编译

news/2025/11/16 14:26:02/文章来源:https://www.cnblogs.com/Tracker647/p/19228114

搬运自自己的CSDN博客:https://blog.csdn.net/Tracker647/article/details/149149713
原帖日期2025年7月6日。

前言

维护的一个项目,由于特殊的技术原因,需要横跨Windows, Linux, ARMLinux三个平台去维护,因此每次增加一个三方库都是头痛的事情:每个平台都要添加,每个平台都要重复一遍下载,写配置脚本,编译PC,编译arm的过程,十分枯燥。

之前学过一点vcpkg,vcpkg可以对三方库自动下载->编译->输出libs一条龙,很好用,于是想到vcpkg自动化的能力能不能应用到交叉平台上来?

步骤

实验环境:

Vmware的Ubuntu20.04

交叉编译环境为韦东山的imx6ull开发板加上其附带的交叉编译工具,可以去它们官网->100ASK_IMX6ULL_PRO开发板->开发板资料上下载。

首先确保vcpkg在机器上已经安装并配置好环境变量,安装教程参考:https://www.cnblogs.com/linuxAndMcu/p/14696542.html#_label4_5

vcpkg下载完毕后,找到vcpkg根目录下的triplets/community文件夹,这里是vcpkg存放自定义平台支持的地方。

要支持imx6ull平台,需要编写该平台对应的cmake支持文件,内容如下:

imx6ull.cmake

set(VCPKG_TARGET_ARCHITECTURE arm)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)set(VCPKG_CMAKE_SYSTEM_NAME Linux)
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE /opt/vcpkg/triplets/community/imx6ull_toolchain.cmake)

imx6ull_toolchain.cmake

set(CMAKE_SYSTEM_NAME Linux)
set(tools /home/zhangdalin/weidongshan/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot)set(CMAKE_SYSROOT ${tools}/arm-buildroot-linux-gnueabihf/sysroot)
set(CMAKE_C_COMPILER ${tools}/bin/arm-buildroot-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/arm-buildroot-linux-gnueabihf-g++)set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

在community文件夹下放入这两个平台文件,就可以让vcpkg安装对应平台的库了,

vcpkg install paho-mqttpp3:imx6ull

在<vcpkg安装位置>/installed, 就可以找到对应平台下的库,直接CV到项目就能用了。

测试:

~/CodeDraft/vcpkg_practice$ vcpkg remove paho-mqttpp3:imx6ull
The following packages are not installed:paho-mqttpp3:imx6ull
~/CodeDraft/vcpkg_practice$ vcpkg install paho-mqttpp3:imx6ull
Computing installation plan...
The following packages will be built and installed:paho-mqttpp3[core,ssl]:imx6ull@1.5.2
Detecting compiler hash for triplet imx6ull...
Compiler found: /home/zhangdalin/weidongshan/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/arm-buildroot-linux-gnueabihf-g++
Restored 1 package(s) from /home/zhangdalin/.cache/vcpkg/archives in 58.5 ms. Use --debug to see more details.
Installing 1/1 paho-mqttpp3[core,ssl]:imx6ull@1.5.2...
Elapsed time to handle paho-mqttpp3:imx6ull: 2.29 ms
paho-mqttpp3:imx6ull package ABI: 2e61e2503eb20db571b01c32263f124f8f59ee22638d5a16a21f989eac954767
Total install time: 3.72 ms
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Packages installed in this vcpkg installation declare the following licenses:
EPL-1.0
paho-mqttpp3 provides CMake targets:# this is heuristically generated, and may not be correctfind_package(PahoMqttCpp CONFIG REQUIRED)target_link_libraries(main PRIVATE PahoMqttCpp::paho-mqttpp3 PahoMqttCpp::paho-mqttpp3-shared)
~/CodeDraft/vcpkg_practice$ cd /opt/vcpkg/installed/imx6ull/lib/
/opt/vcpkg/installed/imx6ull/lib$ readelf -h libpaho-mqtt
libpaho-mqtt3a.so          libpaho-mqtt3as.so.1       libpaho-mqtt3c.so.1.3.14   libpaho-mqttpp3.so
libpaho-mqtt3a.so.1        libpaho-mqtt3as.so.1.3.14  libpaho-mqtt3cs.so         libpaho-mqttpp3.so.1
libpaho-mqtt3a.so.1.3.14   libpaho-mqtt3c.so          libpaho-mqtt3cs.so.1       libpaho-mqttpp3.so.1.5.1
libpaho-mqtt3as.so         libpaho-mqtt3c.so.1        libpaho-mqtt3cs.so.1.3.14  
/opt/vcpkg/installed/imx6ull/lib$ readelf -h libpaho-mqtt3a.so
ELF Header:Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class:                             ELF32Data:                              2's complement, little endianVersion:                           1 (current)OS/ABI:                            UNIX - System VABI Version:                       0Type:                              DYN (Shared object file)Machine:                           ARMVersion:                           0x1Entry point address:               0x29d8Start of program headers:          52 (bytes into file)Start of section headers:          175192 (bytes into file)Flags:                             0x5000400, Version5 EABI, hard-float ABISize of this header:               52 (bytes)Size of program headers:           32 (bytes)Number of program headers:         6Size of section headers:           40 (bytes)Number of section headers:         27Section header string table index: 23

参考

https://stackoverflow.com/questions/58777810/how-to-integrate-vcpkg-in-linux-with-cross-build-toolchain-as-well-as-sysroot

https://download.100ask.net/boards/Nxp/100ask_imx6ull_pro/index.html

https://www.cnblogs.com/linuxAndMcu/p/14696542.html#_label4_5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/967088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细介绍:什么是机械设备制造ERP?哲霖软件如何助力企业实现降本增效?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

python -m pip install 就行 我pip install就不行?

python -m pip install 就行 我pip install就不行?离奇现象 直接输入pip相关命令用不了,返回如下信息: Fatal error in launcher: Unable to create process using "C:\Users\86178\AppData\Local\Programs\Py…

Personalized QRCode - 个性化自定义二维码生成器

Personalized QRCode - 个性化自定义二维码生成器. 个性化二维码生成器 使用您自己的图片创建独特的个性化二维码 几秒钟内生成美观的个性化二维码。 上传您的图片,自定义您的二维码,与世界分享。 https://qrcode.ch…

对“机器人VCU”进行一个详细、架构的讲解。

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Qt编写28181推流分发服务/统计访问数量/无人观看超时关闭/等待重新点播/复用点播

一、前言说明 本以为之前写的国标GB28181服务端程序已经够完善了,不料又来个新的需求,需要配合流媒体服务程序进行处理,本着给钱就干的原则,把mediamtx和zlm的http请求接口研究了下,需求主要两个,一个是需要统计…

20232407 2025-2026-1 《网络与系统攻防技术》 实验五实验报告

1.实验内容 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取信息 (2)尝试获取BBS、论坛、QQ、MSN中某一好友的IP地址,并查询获取该好友所在的具体地理位置 (3)使用nmap开源软件…

实现string类

#pragma once#include <cstddef> #include <cstring> #include <algorithm> #include <stdexcept>// namespace M { class string { public:static const size_t s_min_capacity; private:cha…

实用指南:Vue 实例生命周期

实用指南:Vue 实例生命周期2025-11-16 14:08 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

React Native创建AndroidIOS流程完整指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Ducky - BPMN 工作流管理系统

Ducky - BPMN 工作流管理系统 https://github.com/fanqingsong/ducky/tree/main 一个基于 FastAPI 和 SpiffWorkflow 的 BPMN 2.0 工作流管理系统,提供完整的流程定义管理、实例执行和可视化功能。功能特性核心功能✅…

图论建模问题

本文将不定期更新图论建模 行列二分图 给一个二维平面,建立二分图,左部点编号为横坐标,右部点编号为纵坐标,平面上一个点即为二分图上一条边。 CF1140F Extending Set of Points 建立行列二分图,把每一个点看成一…

python多进程通信中的Queue、SimpleQueue、Pipe

python多进程通信中的Queue、SimpleQueue、Pipepython多进程通信中的Queue、SimpleQueue、Pipepython多进程通信中的Queue、SimpleQueue、PipeQueue 多进程中的Queue的底层是使用Pipe实现的,因此使用Queue进行多进程通…

旧版本SiK数传的对频问题

最近折腾 3DR数传,芯片是 USB HM‑TRP ,地面端固件是 SiK 1.7,天空端是 2.2,无法连接。用 Mission Planner 看了下,地面端的 格式(FORMAT) 是 25,天空端是 26,不兼容。 尝试用 MP 给地面端刷固件,点了加载固…

2025年甘肃广告策划服务综合推荐排行榜

摘要 随着数字化转型加速,2025年甘肃广告策划行业迎来新一轮发展机遇,本土服务商在创意能力、技术应用和服务体系方面持续升级。本文基于市场调研、客户反馈和行业数据,为您呈现甘肃地区广告策划服务商综合实力排行…

2025年甘肃兰州专业的广告物料制作公司推荐

摘要 随着数字化转型的加速和线下体验经济的崛起,2025年甘肃兰州广告物料制作行业迎来新一轮发展机遇。本地市场需求持续增长,对创意设计、工艺质量和一站式服务的要求显著提升。本文基于行业数据、客户口碑和技术实…

2025年甘肃兰州比较好的广告物料制作服务团队

摘要 2025年,甘肃兰州广告物料制作行业持续蓬勃发展,随着数字化和个性化需求增长,本地服务商在技术、创意和执行层面不断升级。本文基于行业数据和用户口碑,为您推荐排名前十的广告物料制作服务团队,并提供详细分…

wordpress批量删除文章

wordpress批量删除文章批量删除文章,比如要删除分类ID为24993下面的文章delete from wp_posts using wp_posts,wp_term_relationships,wp_term_taxonomywherewp_posts.id=wp_term_relationships.object_idandwp_term_r…

OpenAI Agent Kit 全网首发深度解读与上手指南 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

supabase

supabase https://github.com/supabase/supabaseSupabaseSupabase is the Postgres development platform. Were building the features of Firebase using enterprise-grade open source tools.Hosted Postgres Datab…

2025年加工型辣椒种子生产厂家排名前十:权威评测与选择攻略

摘要 随着2025年加工型辣椒种子行业的持续增长,市场需求聚焦于高品质、高产量品种。本文基于行业数据和市场调研,整理了前十名供应商排名,涵盖品牌介绍、核心优势及服务成果,并为种植户提供实用选择指南。排名表单…