Qt在linux系统上使用技巧

路径表示

Windows操作系统可用"\"或"/"表示路径,Unix操作系统用"/"表示路径。综合,qt最好用“/”表示路径。

第三方静态库和动态库

lib文件:(依据编译器) MSVC编译器是生成.lib 文件。 mingw编译器生成.a 文件。linux平台无lib文件。

dll文件:(依据平台)    windows平台是.dll 文件,unix平台是.so

对于windows的msvc系统,有.lib和.dll文件。配置LIBS+= 就是配置.lib文件。

对于windows的mingw系统,有.a和.dll文件。配置LIBS+= 就是配置.a文件。

对于linux系统,只有.so文件。配置LIBS+= 就是配置.so文件。

第三方配置LIBS目录做法

LIBS += somepath 这个可以多行写,也可以用“\”隔行

第一种办法:

可以用-L指定目录,-l指定库的名称(无需后缀,.lib,.a, .so都适用,这样就不用区分到底是哪种)

优点:windows和linux平台通用

如在windows msvc环境下,有bin目录下有log4qt.lib、log4qt.dll。

Pro配置文件写: LIBS += -L$$PWD/../bin -llog4qt

实际上就是配置log4qt.lib。

如在linux 环境下有bin目录下只有liblog4qt.so

Pro配置文件写: LIBS += -L$$PWD/../bin -llog4qt

实际上就是配置liblog4qt.so。

第二种办法:

直接通过绝对路径和相对路径指定库的完整path(需后缀,.lib,.a, .so都适用),相对路径用$$pwd前缀,路径不允许空格。

缺点是:在windows和linux平台不通用,各自平台需要单独配置。

如在windows msvc环境下,有bin目录下有log4qt.lib、log4qt.dll。

Pro配置文件写: LIBS += $$PWD/../bin/log4qt.lib

实际上就是配置log4qt.lib。

如在linux 环境下有bin目录下只有liblog4qt.so

Pro配置文件写LIBS += $$PWD/../bin/liblog4qt.so

实际上就是配置liblog4qt.so。

Linux下QT生成的(.so)、(.so.1)、(.so.1.0)、(.so.1.0.0)之间的区别

.so 即 linux 下的共享库(Shared library),或称动态库

QT在生成动态库时,会默认生成(.so)、(.so.1)、(.so.1.0)、(.so.1.0.0)四个文件。其中,(.so.1.0.0)为实际的动态库文件,(.so)、(.so.1)、(.so.1.0)均为软链接,都是指向(.so.1.0.0)的链接文件,为了版本控制。

只生成一个.so文件的办法:在pro文件加上 CONFIG += plugin

linux 环境变量的设置

查看:

export 查看环境变量

echo $PATH 输出某个环境变量的值

设置:

  1. export PATH=/home/uusama/mysql/bin:$PATH //当前终端有效,窗口关闭后无效,仅对当前用户有效
  2. .vim ~/.bashrc 添加 export PATH=/home/uusama/mysql/bin:$PATH//仅对当前用户有效,永久有效
  3. vim /etc/profile 添加 export PATH=/home/uusama/mysql/bin:$PATH   //对所有用户有效,永久有效

环境变量生效命令: source  如source  /etc/profile  或者source  ~/.bashrc

具体参考:linux 环境变量的设置_linux设置环境变量命令-CSDN博客

  1. LD_LIBRARY_PATH和PATH的区别

LD_LIBRARY_PATH:是用于指定动态链接库(shared library)的搜索路径。在执行可执行文件时,操作系统需要加载相应的共享库文件,LD_LIBRARY_PATH变量定义了操作系统在哪里查找这些库文件.

PATH是用于指定可执行文件的搜索路径。当你在终端输入一个命令时,操作系统会搜索PATH中指定的路径,以找到与输入命令对应的可执行文件.

LD_LIBRARY_PATH具体用法:

如下面test程序调用liblog4qt.so动态库,那么在运行test程序的电脑上,需要设置LD_LIBRARY_PATH,如可以在.vim ~/.bashrc上设置。

PATH具体用法:

vim /etc/profile 中添加qt可执行文件的路径

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

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

相关文章

JAVA期末考试知识点总结

基础语法 在Java中,基本数据类型有以下几种:1.整数类型: 2.byte:占用 1 字节(8 位),范围为 -128 到 127。 3.short:占用 2 字节(16 位),范围为 -…

亚马逊实时 AI 编程助手 CodeWhisperer使用体验

文章目录 1:什么是CodeWhisperer ?2:试用3:上手体验 1:什么是CodeWhisperer ? 最近ChatGPT展现出强大AI能力给我们带来了深刻的影响,AI现在不是一个概念,基于AI的产品一定在各行各业…

实战AI大模型:AIGC及经典模型

今天,人工智能技术的快速发展和广泛应用已经引起了大众的关注和兴趣,它不仅成为技术发展的核心驱动力,更是推动着社会生活的全方位变革。特别是作为AI重要分支的深度学习,通过不断刷新的表现力已引领并定义了一场科技革命。大型深…

Linux服务器安装操作Nginx

1.下载nginx压缩包 //进入/usr/local目录创建一个文件夹 cd /usr/local mkdir nginx cd nginx //下载tar包 wget http://nginx.org/download/nginx-1.20.1.tar.gz 2.配置nginx安装所需的环境 1. 安装gcc 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gc…

网站如何创建百度地图显示地理位置

在做企业网站的时候,我们会放置一个地理位置,我们可以引用百度地图,来显示我们的店铺所在位置 效果演示: 操作步骤 1、打开百度地图https://map.baidu.com/,搜索输入地址 2、点击地址 3、会出现如下视图 4、点击分享…

Dijkstra算法——邻接矩阵实现+路径记录

本文是在下面这篇文章的基础上做了一些补充,增加了路径记录的功能。具体Dijkstra的实现过程可以参考下面的这篇文章。 [jarvan:Dijkstra算法详解 通俗易懂](Dijkstra算法详解 通俗易懂 - jarvan的文章 - 知乎 https://zhuanlan.zhihu.com/p/338414118) …

安卓adb

目录 如何开启 ADB 注意事项 如何使用 ADB ADB 能干什么 ADB(Android Debug Bridge)是一个多功能命令工具,它可以允许你与 Android 设备进行通信。它提供了多种设备权限,包括安装和调试应用,以及访问设备上未通过…

HarmonyOS应用开发者基础认证考试

判断题 1.Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(True) 2.所有使用Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。 错误(False) 3.每调用一次router.pushUrl()方法,…

Cocos Creator 3.8 开发2D水面波纹Shader

使用cocos Creator 3.8做了一个游戏开中常用的2D的波浪水面,把技术点给记录一下,并提供完整的Shader代码。先上效果: 添加图片注释,不超过 140 字(可选) 2D 波浪的基本技术原理 2D 水面波纹的主要原理就是给定一个正选波的边界&…

基于 SpringBoot + magic-api + Vue3 + Element Plus + amis3.0 快速开发管理系统

Tansci-Boot 基于 SpringBoot2 magic-api Vue3 Element Plus amis3.0 快速开发管理系统 Tansci-Boot 是一个前后端分离后台管理系统, 前端集成 amis 低代码前端框架,后端集成 magic-api 的接口快速开发框架。包含基础权限、安全认证、以及常用的一…

2020年认证杯SPSSPRO杯数学建模D题(第二阶段)让电脑桌面飞起来全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 D题 让电脑桌面飞起来 原题再现: 对于一些必须每天使用电脑工作的白领来说,电脑桌面有着非常特殊的意义,通常一些频繁使用或者比较重要的图标会一直保留在桌面上,但是随着时间的推移,…

搭建LNMP网站平台并部署Web应用

本章主要介绍: 安装Nginx安装MySQL安装PHP在LNMP平台中部署 Web 应用 构建LNMP网站平台就像构建LAMP平台一样,构建LNMP平台也需要Linux服务器,MySQL数据库,PHP解析环境,区别主要在Nginx 与 PHP的协作配置上&#xff0…

Spring 应用上下文探秘:生命周期解析与最佳实践

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Spring 应用上下文探秘:生命周期解析与最佳实践 前言应用上下文的初始化过程1. 应用上下文的初始化过程:2. 不同类型的 ApplicationContext 初始化流程:2.1 Annotat…

湖南大学-数据库系统-2018期末考试解析

【写在前面】 这是2018年的卷子,复习备考的时候做了并与同学校对了答案。答案仅供参考。这张难度不大,同样的,跟前几张差不了太多。但是从这一年开始,选择题变成了15道,越来越贴切近几年的考试了。 一、单选题&#xf…

HTML JavaScript 康威生命游戏

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>康威生命游戏</title><style>body {font-family: Arial, sa…

JS-基础语法(一)

JavaScript简单介绍 变量 常量 数据类型 类型转换 案例 1.JavaScript简单介绍 JavaScript 是什么&#xff1f; 是一种运行在客户端&#xff08;浏览器&#xff09;的编程语言&#xff0c;可以实现人机交互效果。 JS的作用 JavaScript的组成 JSECMAScript( 基础语法 )…

每日算法打卡:分巧克力 day 9

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 题目分析示例代码 原题链接 1227. 分巧克力 题目难度&#xff1a;简单 题目来源&#xff1a;第八届蓝桥杯省赛C A/B组,第八届蓝桥杯省赛Java A/B/C组 题目描述 儿童节那天有 …

流程挖掘在优化核心业务、增强可见性和提升自动化方面的三重效应

在过去二十年里&#xff0c;流程挖掘技术已由最初的学术理念演变成一种成熟的软件基础工具&#xff0c;它致力于流程的可视化、深度分析及其优化。传统的手动流程改进方法往往会受到主观偏见和误差的干扰&#xff0c;而流程挖掘技术则通过结合流程建模与数据挖掘手段&#xff0…

mysql 优化工具 EXPLAIN详解

EXPLAIN 是 MySQL 中用于查看查询执行计划的关键字&#xff0c;通过 EXPLAIN 可以了解 MySQL 优化器是如何选择执行查询的。EXPLAIN 的输出信息包括了许多字段&#xff0c;其中一些关键的字段和类别如下&#xff1a; id&#xff1a; 查询的标识符&#xff0c;用于标识查询执行计…

【2024系统架构设计】 系统架构设计师第二版-嵌入式系统架构设计理论与实践

目录 一 嵌入式系统软件架构的原理 二 嵌入式系统软件架构的设计方法 三 案例分析 一 嵌入式系统软件架构的原理 🚀嵌入式系统的典型架构可以分为