Linux 不同架构、不同系统的问题

文章目录

        • 一、麒麟V10(kylin)操作系统中,sudo执行程序后,其环境变量依然为用户家目录。
          • (1)背景
          • (2)原因
          • (3)解决办法
        • 二、统信(UOS)操作系统中,QWidget中插入图片,边框显示黑色
          • (1)原因
          • (2)解决办法

一、麒麟V10(kylin)操作系统中,sudo执行程序后,其环境变量依然为用户家目录。
(1)背景

我的程序在通过sudo,去安装程序安装包时,总会在用户目录下,新建一个root所属组的文件,导致程序后续都无法使用该配置文件。而在除了麒麟v10的系统上没有该问题。

// (1)安装deb包
sudo dpkg -i qq_1520.deb// (2)deb解压后,包含postinst安装脚本,里面执行了升级程序
#!/bin/bash
/opt/QQ/qqupdate >/dev/null 2>&1 &// (3)该升级程序使用QT生成,会有文件写入操作
QSettings s(QSettings::NativeFormat, QSettings::UserScope, "my_exe", "qq");
s.setValue("key", "value");// (4)kylin会在家目录下生成,并且该文件所属组是root,当家目录用户使用该文件时,则没有权限
/home/guofucheng/.config/my_exe/qq.conf// (5)展示文件信息
-rw-r--r-- 1 root root 22 220 16:00 qq.conf
(2)原因

写一个最直接的demo,可以说明根本的原因,当前在家目录下,麒麟v10操作系统的$home环境变量为用户目录,而其他操作系统的该变量为/root是正确的,因为sudo安装安装包时,运行就应该是以根用户运行,而新建的文件也应该生成到根目录下

// 麒麟v10
sudo bash -c 'echo $HOME'
/home/guofucheng// 其他操作系统
sudo bash -c 'echo $HOME'
/root

如何知道是该环境变量导致的该问题呢?
因为在QSettings中,如果不指定确切的路径,它默认创建的目录会使用QDir::homePath()所获取的路径,该函数在linux下是通过$HOME环境变量来获取的。

在这里插入图片描述

(3)解决办法

就是在麒麟v10下,让文件生成到根目录,不影响到家目录用户。手动添加环境变量到根目录,影响面最小。

HOME=/root /opt/QQ/qqupdate >/dev/null 2>&1 &


二、统信(UOS)操作系统中,QWidget中插入图片,边框显示黑色
(1)原因

如果未开启窗口特效功能,那么程序中如果插入包含透明背景的图片,会显示黑色

(2)解决办法

图片本身去掉圆角,去掉透明。或者在系统设置中开启窗口特效功能。

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

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

相关文章

.norm() 范数

(A- B).norm().item() 是默认计算A与B的第二范数,如果你想计算差向量的第一范数(也称为L1范数),可以在norm()方法中传递p1参数,这样就会计算出L1范数。例如: (A- B).norm(p1).item() 其中,使用…

【CMake】(13)流程控制

条件判断 基本语法 条件判断的基本语法如下: if(<condition>)<commands> elseif(<condition>)<commands> else()<commands> endif()if(<condition>):检查条件是否满足。如果满足,则执行随后的命令直到遇到elseif、else或endif。else…

Java虚拟机(JVM)的调优是为了提高Java应用程序的性能、稳定性和资源利用率

Java虚拟机&#xff08;JVM&#xff09;的调优是为了提高Java应用程序的性能、稳定性和资源利用率。以下是一些建议的JVM调优技巧&#xff1a; 调整堆大小&#xff1a; 设置堆的大小以适应应用程序的需求。通过调整-Xms&#xff08;初始堆大小&#xff09;和-Xmx&#xff08;最…

GDB之(1)入门指令参数介绍

GDB之(1)基础入门指令参数介绍 Author&#xff1a;Once Day Date: 2022年7月29日/2024年2月26日 漫漫长路&#xff0c;才刚刚开始… 全系列文章请查看专栏: Linux实践记录_Once-Day的博客-CSDN博客 推荐参考文档&#xff1a; GDB: The GNU Project Debugger (sourceware.o…

机器学习 | 基本概念梳理——数据集评估,任务,训练和测试,期望结果

文章目录 1 整体概念梳理1.1 数据集与数据术语——原材料1.2 任务术语——目标1.3 训练和测试术语——怎么做1.4 结果——预期期望 整体框架 机器学习的基本概念全梳理 我们通过一个生动形象的例子来介绍这些概念 我们假设有一个任务是根据地理天气等特征位置预测经纬度 1 整…

php查看哪个类的调用当前函数

在 PHP 中&#xff0c;你可以通过使用 debug_backtrace() 函数来查看当前类的哪个方法调用了当前方法。debug_backtrace() 函数返回一个包含调用堆栈信息的数组&#xff0c;你可以从中获得有关调用者的信息。 下面是一个简单的示例&#xff1a; class MyClass {public functi…

2023 re:Invent 用 Amazon Q 打造你的知识库

前言 随着 ChatGPT 的问世&#xff0c;我们迎来了许多创新和变革的机会。一年一度的亚马逊云科技大会 re:Invent 也带来了许多前言的技术&#xff0c;其中 Amazon CEO Adam Selipsky 在 2023 re:Invent 大会中介绍 Amazon Q 让我印象深刻&#xff0c;这预示着生成式 AI 的又一…

VUE从0到1创建项目及基本路由、页面配置

一、创建项目:(前提已经安装好vue和npm) 目录:E:\personal\project_pro\ windows下,win+R 输入cmd进入命令行: cd E:\personal\project_pro E:# 创建名为test的项目 vue create test# 用上下键选择vue2或vue3,回车确认创建本次选择VUE3 创建好项目后,使用…

FPS游戏之漫谈开房间流程

在FPS游戏中创建房间的前端和后端逻辑通常如下&#xff1a; 前端&#xff08;客户端&#xff09;逻辑&#xff1a; 用户界面设计&#xff1a; 提供一个创建房间的表单&#xff0c;包含输入框&#xff08;房间名、可选密码、房间类型选择等&#xff09;。提供创建按钮&#xff…

Nginx之rewrite重写功能

一、rewrite概述 1、rewrite功能 访问重写 rewrite 是 Nginx HTTP 请求处理过程中的一个重要功能&#xff0c;它是以模块的形式存在于代码中的&#xff0c;其功能是对用户请求的 URI 进行 PCRE 正则重写&#xff0c;然后返回 30 重定向跳转或按条件执行相关配置。 Nginx服务…

重新认识linux中的sudo命令

以前一直以为sudo命令就是以root权限执行命令&#xff0c;打了HACKSUDO: THOR靶场才发现原来sudo还可以有很多别的用法。 sudo的常用参数&#xff1a; -u&#xff1a;指定以特定用户的身份执行命令&#xff0c;格式为 -u username。-g&#xff1a;指定以特定用户组的身份执行…

idea 创建打包 android App

1、使用 idea 创建 android 工程 2、 配置构建 sdk 3、配置 gradle a、进入 gradle 官网&#xff0c;选择 install &#xff08;默认是最新版本&#xff09; b、选择包管理安装&#xff0c;手动安装选择下面一个即可 c、安装 sdk 并通过 sdk 安装 gradle 安装 sdk&#xff1a…

ABAP性能优化总结

前言 程序的效率是每个程序员开发者都应该重视的,无论您是采用哪一种语言进行开发. 程序有时候越短,并不一定越快,有时候程序很多代码,但不一定会很慢. 性能是一把双刃剑, 获得时间效率的同时, 牺牲的是空间的开销. 这里提供一些建议以提高你的程序运行速度和减低系统荷载。AB…

软件无线电SDR加人工智能算法实现无人机频谱探测

通用软件无线电接收机作为传感器实时接收探测无线电信号&#xff0c;加上深度学习算法实现频谱识别&#xff0c;(https://img-blog.csdnimg.cn/5a6c4d89a047453a94f763f4e67aeb17.png)

合并果子(哈夫曼树)NOIP2004提高组

在一个果园里&#xff0c;达达已经将所有的果子打了下来&#xff0c;而且按果子的不同种类分成了不同的堆。 达达决定把所有的果子合成一堆。 每一次合并&#xff0c;达达可以把两堆果子合并到一起&#xff0c;消耗的体力等于两堆果子的重量之和。 可以看出&#xff0c;所有…

个人编译踩的坑

CMake引入第三方库 find_package(PkgConfig REQUIRED) pkg_search_module(alibabacloud-oss-cpp-sdk IMPORTED_TARGET alibabacloud-oss-cpp-sdk) message(STATUS "AliOSS include path: ${alibabacloud-oss-cpp-sdk_INCLUDE_DIRS}") message(STATUS "AliOSS l…

大话设计模式——3.建造者模式(Builder Pattern)

1.定义&#xff1a; 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。UML图 2.示例&#xff1a; 汽车或者电脑的组装可以采用构造者模式进行设计&#xff0c;如汽车的引擎或者轮胎&#xff0c;电脑的处理器、内存、主板等都可以进行…

flutter简单的MethodChannel通道Demo(引入调用小红书sdk)

flutter端创建MethodChannel类 import package:flutter/services.dart;//MethodChannel const methodChannel const MethodChannel(com.flutter.demo.MethodChannel);class FlutterMethodChannel {/** MethodChannel flutter给原生发信息* 在方法通道上调用方法invokeMethod*…

FPS游戏漫谈System.GC.Collect()强制进行垃圾回收

在Unity中&#xff0c;System.GC.Collect()用于强制进行垃圾回收&#xff0c;但是它是一个相当耗时的操作&#xff0c;可能会导致游戏的帧率下降&#xff0c;甚至出现卡顿。因此&#xff0c;你应该尽量避免在游戏的主循环中频繁调用它。以下是一些关于在Unity中使用System.GC.C…

Java做个比对数据的框架

要创建一个Java中的数据比对框架&#xff0c;你需要考虑框架的架构、可扩展性、模块化和可重用性。以下是一个简单的步骤&#xff0c;指导你如何构建这样的框架&#xff1a; 定义框架的核心接口和抽象类&#xff1a; 定义数据源的接口&#xff0c;例如DataSource&#xff0c;用…