VS2015+QT笔记1

来源:互联网 发布:淘宝信用支付怎么开通 编辑:程序博客网 时间:2024/05/20 07:20

QT目录结构介绍

C:\Qt\Qt5.9.0\5.9\msvc2015\bin\assistant.exe:这里存储了各种工具集,assistant.exe是QT的手册

C:\Qt\Qt5.9.0\5.9\msvc2015\bin\designer.exe:这个是QT的UI设计器

C:\Qt\Qt5.9.0\5.9\msvc2015\bin\moc.exe:这个是生成信号和槽的工具

C:\Qt\Qt5.9.0\5.9\msvc2015\plugins:插件的路径

C:\Qt\Qt5.9.0\5.9\msvc2015\lib:QT库的路径

C:\Qt\Qt5.9.0\5.9\msvc2015\include:QT头文件的路径


QT项目由源码和界面资源文件到程序的步骤

QT程序编译经历的步骤

1:编译pro生成makefile,项目配置修改后,都要执行这一步。

2:生成makefile之后,通过jom或者make编译makefile。

jom:生成界面源码,uic.exe  widget.ui   -o   ui_widget.h

   生成信号槽代码:moc.exe   widget.h  moc_widget.cpp


从代码到程序执行经历的步骤

1:预处理-头文件加载和宏生成cpp

2:编译-cpp到.o或者.obj

3:链接so lib  o  obj  res  a


手动创建pro

1:创建pro

SOURCES += main.cpp
CONFIG += console

2:配置qmake和jom执行路径和vs环境变量问题

要配置一下qmake命令的环境变量路径C:\Qt\Qt5.9.0\5.9\msvc2015\bin

还要配置一下jom的路径:C:\Qt\Qt5.9.0\Tools\QtCreator\bin

"D:\VS2015\VC\vcvarsall.bat"运行一下这个环境变量

3:执行命令

qmake   -o    makefile   testqmake.pro

jom  /f  makefile.Debug   /f是指定的编译文件


可以写一个批处理文件make.bat

call   "D:\VS2015\VC\vcvarsall.bat"
qmake -o makefile testqmake.pro
jom /f makefile.Debug
pause


然后到控制台,直接执行make


在乌班图中配置qmake的环境变量:

.profile文件里面添加

PATH="$HOME/bin:$HOME/.local/bin:/opt/Qt5.9.0/5.9/gcc_64/bin/:$PATH"

然后到那个目录下面执行qmake命令就会生成makefile文件,然后make就可以了。


导入VS

1:qmake   -tp    vc     test.pro

2:使用vs工具导入




添加库和头文件的方法:

在pro文件里面添加:INCLUDEPAHT +=   LIBS  +=

INCLUDEPATH += $$PWD/../../include

LIBS += -L../../lib  -lopencv_world320

输出路径的指定:DESTDIR  +=  ../../bin

输出文件名字的指定:TARGET  =  test


QT创建动态库



手动创建动态库

libdll.pro工程文件内容:

SOURCES += xsocket.cpp#源文件
HEADERS += xsocket.h#头文件
TARGET=libdll#目标
TEMPLATE=lib#模版是库
#CONFIG += staticlib#静态库
CONFIG += console#控制台

改变了pro文件,要首先清理,然后执行qmake,最后编译文件


然后要导出一些符号

定义一个头文件,xglobal.h

#ifndef XGLOBAL_H
#define XGLOBAL_H
#include <QtCore/qglobal.h>
#ifdef LIBDLL_LIB
#define XEXPORT Q_DECL_EXPORT//导出库
#else
#define XEXPORT Q_DECL_IMPORT
#endif
#endif // XGLOBAL_H

在配置文件里面加入宏定义

DEFINES += LIBDLL_LIB#定义这个宏,然后编译可以生成动态库

DESTDIR = "../../lib"  #指定目标文件输出路径

DLLDESTDIR = "../../bin" #指定dll文件输出路径,这个变量只是适合windows系统

使用动态文件的方法

INCLUDEPATH += ../libdll  #指定头文件
LIBS += -L../lib -llibdll #指定库

在Linux当中,首先执行qmake  -o   makefile   libdll.pro:第一步生成makefile

第二步make


在Linux中使用库,可以把所有的库全部拷贝到系统目录下面:cp  lib/*  /usr/lib


debug和release版本编译设置

CONFIG  (debug,debug|release){

TARGET =  libdll_d

}else{

TARGET = libdll

}


qtcreator的qmake跨平台配置

所有的平台配置:C:\Qt\Qt5.9.0\5.9\msvc2015\mkspecs

第一种方案

win32:TARGET = winmkspecs#只针对window32平台修改

linux:TARGET = linuxmkspecs#只针对Linux平台


第二种方案

win32{

message(win32)

}

linux{
message(linux)

}

!linux{#如果不是Linux

message("not  linux")

}

macx{#苹果系统

message(unix)

}

win32|linux{#window32和Linux平台通用

message("win or  linux")

}

打印当前平台的名字:message($$QMAKESPEC)


不同的编译器做一些配置:

win32-g++{

message(win32-g++)

}

win32-msvc{

message(win32-msvc)

}


QString转换为char* 类型

QString  name;

char *path;

path = name.toLatin1().data()











原创粉丝点击