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可执行文件的路径

你可能感兴趣的:(qt,linux,qt,linux)