记一次LLVM平行宇宙修包实战
最近加入了LLVM平行宇宙计划小组,在小组内提交了一定数量的PR。这个计划究竟是做什么的呢?LLVM平行宇宙计划是基于LLVM技术栈构建openEuler软件包,大白话讲就是原本一个软件包是用gcc/g++编译的,现在换成clang/clang++编译。虽然只是切换了编译工具,但是偶尔也有可能出现一些意想不到的错误。
我选择修的软件包是qt-mobility,地址在这:Show Mega:24.03:SP1:Everything / qt-mobility - 开源软件构建与测试
失败日志如下

可以看到error部分,gcc/g++并不支持--config选项,按理来说,OBS工程配置已经将编译工具链切换为LLVM,但是编译的时候仍然出现gcc/g++,这是因为在Makefile等编译脚本里面显式指定了gcc/g++作为编译器,因此需要手动改回来。不过,这个项目里面并没有Makefile,它使用qmake根据.pro结尾的文件来生成Makefile。

这段日志呈现了qmake大量读取.pro文件的过程,既然Makefile通过qmake生成,那么可以在qmake读取.pro文件的时候传入跟编译器有关的命令行参数,问题自然就解决了。qmake QMAKE_CC=clang QMAKE_CXX=clang++ xxx.pro,形如这样。

我改动的部分已标注好了,主要就是根据编译工具链环境来添加一个宏,一开始我只添加了QMAKE_CXX=clang++,依然编译错误(因为编译过程也用到了gcc,但是gcc不支持--config选项),后面索性加上了QMAKE_CC=clang,于是编译成功了。工程地址在这:Show home:Thomas134:branches:Mega:24.03:SP1:Everything / qt-mobility - 开源软件构建与测试
今天是年初二,有人开开心心过年,有人依旧在工作中奋战,希望每个人都能在2025年实现自己的梦想。
记一次LLVM平行宇宙修包实战的更多相关文章
- Charles抓包实战详解
访问我的博客 前言 通过上一篇文章,想必你已经掌握了如何正确安装抓包神器 Charles,如果还是抓不了包,可以再看看. 今天要做是抓包实战,因为我在做网络文学的公司就职,所以就拿网络文学的 APP ...
- 写书好累 <HTTP抓包实战>终于出版
我的新书<HTTP抓包实战>终于开始在京东销售了.内容是关于HTTP包,Fiddler抓包,JMeter发包,适合任何IT工程师阅读.我将自己十年所学的知识,融会贯通总结为一本书.阅读后肯 ...
- Web协议详解与抓包实战,高效解决网络难题
无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速.高效地解决问题,Web 协议一定是你绕不过去的一道坎. 旨在帮助你对各种常用 W ...
- 【原创】记一次DouPHP站点的RCE实战之旅
声明 本次实践是在合法授权情况下进行,数据已经全部脱敏,主要是提供思路交流学习,请勿用于任何非法活动,否则后果自负. 实战记录 信息收集 1,踩点站点 通过fofa 查到目标DouPHP框架该站点(也 ...
- 记一次解决netty半包问题的经历
最近学习了netty,想写一个简单的rpc,结果发现发送消息时遇到难题了,网上搜了一下,这种情况是半包问题和粘包问题,主要是出现在并发高一些的时候. talk is cheap 客户端编码: prot ...
- ARP抓包实战小结-TCP/IP协议学习
2011-12-26 21:36:47 图1 一,环境说明 硬件连线.PC与2440开发板直接用网线连接. PC的ip地址:192.168.0.107.2440开发板的ip地址:192.168.0.1 ...
- Web协议详解与抓包实战:HTTP1协议-如何用Chrome的Network面板分析HTTP报文(1)
一.Chrome 抓包:Network 面板 1. Network 面板 • 控制器:控制面板的外观与功能 • 过滤器:过滤请求列表中显示的资源 • 按住 Command (Mac)或 Ctrl (W ...
- HTTP抓包实战
HTTP:超文本传输协议 允许将HTTP文档从Web服务器传送到客户端的浏览器.HTTP请求报文分为3部分.第一部分叫做起始行(Request line).第二部分叫首部(Request Header ...
- 记一次用WireShark抓包摆脱Si服后台限制的过程
背景:闲着无聊找了个小众的手游,因为手游都是比较吃金的,所以就找了个Si服,鉴于小时候宝可梦的情怀,就TB买了个GM后台.谁知这玩意有限制,到了100级之后升级超级难,最多只能发送99999W点经验, ...
- LLVM 安装教程(包安装)
LLVM 安装教程 环境:ubuntu16.04 llvm-4.0 clang-4.0 步骤: 1.依赖库安装 $ sudo apt-get install build-essential curl ...
随机推荐
- typescript 接口和对象类型(四)
在typescript中,我们定义对象的方式要用关键字interface(接口), 使用interface来定义一种约束,让数据的结构满足约束的格式.定义方式如下: // 定义一个接口类型 int ...
- golang之设计模式
[选项模式] package main import "fmt" type OptionFunc func(*DoSomethingOption) type DoSomething ...
- @EnableAutoConfiguration 标签使用
@EnableAutoConfiguration 这个注解的作用是: 从classpath中搜索所有META-INF/spring.factories配置文件然后,将其中org.springframe ...
- OceanBase 的探索与实践
作者:来自 vivo 互联网数据库团队- Xu Shaohui 本文总结了目前我们遇到的痛点问题并通过 OceanBase 的技术方案解决了这些痛点问题,完整的描述了 OceanBase 的实施落地, ...
- 强网杯2023 谍影重重2.0 wp
题目描述 小明是某间谍组织的一员,他终日监听着我国某重点军事基地的飞行动态,妄图通过分析参数找到我国飞的最快的飞机.我国费尽千辛万苦抓住了他,并在他的电脑上找到了一段他监听的信息,请分析出这段信息中飞 ...
- github访问不了解决方法
github突然无法访问,解决办法如下-迷恋自留地 首先通过网址https://tool.chinaz.com/dns?type=a&host=github.com 修改hosts文件,win ...
- 规模法则(Scaling Law)与参数效率的提高,
上一篇:<人工智能大语言模型起源篇(三),模型规模与参数效率> 规模法则与效率提高 如果你想了解更多关于提高变换器效率的各种技术,我推荐阅读2020年的<Efficient Tran ...
- docker启动所有容器命令
启动所有容器 docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) 关闭所有容器 docker stop $(docker ps ...
- 【Amadeus原创】免费的FTP软件Filezilla终极使用方法
FTP是两台异地终端传输大文件的利器. 最火也是最好用的FTP软件,当属FileZilla. 使用方法: 一.安装FileZilla 服务器端安装server版,客户端安装正常版, 下载地址:http ...
- HBaseIntrospector
package x;import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; ...