Qt工程pro文件的简单配置(尤其是第三方头文件和库)
Qt开发中,pro文件是对正工程所有源码、编译、资源、目录等的全方位配置的唯一方式,pro文件的编写非常重要,以下对几个重要项进行说明(win和linux,mac平台通用配置)
注释
以”#”开始的行,直到结束
模板变量
告诉qmake生成哪种makefile
TEMPLATE = app
- 1
其中
- app -表示该工程建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用
- lib - 表示该工程建立一个库的makefile
生成目录
指定生成的可执行程序的目录,可以绝对和相对路径
DESTDIR += ../bin
- 1
生成的应用程序名
软件名
TARGET = qtest
- 1
编译选项
增添或者移除某个模块
比如增添C++11和console支持,Qt的各模块也在这里面添加
CONFIG += console c++11 network
CONFIG -= qt
- 1
- 2
可以用空格分隔或者”\”来隔行
目标文件目录
obj文件存放的目录,可以绝对或相对路径
OBJECTS_DIR += ../tmp
- 1
工程中包含的头文件
表示本工程中的头文件
HEADERS += \
libcurl/curl/curl.h \
libcurl/curl/curlbuild.h \
libcurl/curl/curlrules.h \
- 1
- 2
- 3
- 4
只要qtcreator目录树里add进去了就自动添加
工程中包含的源文件
表示本工程中的源文件
SOURCES += mytest.cpp\
main.cpp
- 1
- 2
只要qtcreator目录树里add进去了就自动添加
工程中包含的资源文件
表示本工程包含的资源文件
RESOURCES += qrc/painter.qrc
- 1
只要qtcreator目录树里add进去了就自动添加,更改pro文件会同步更新qtcreator里的目录树,但不会影响硬盘上的资源文件
附加头文件包含目录
一般要编译链接第三方库时配置include目录
例如
INCLUDEPATH += ./boost/include\
src/thirdpart/include
- 1
- 2
INCLUDEPATH += D:/boost/include\
E:/cocos2dx/include
- 1
- 2
- 可以用绝对或相对路径
- 相对路径中./可以省略
- 路径中不允许出现空格
链接库
对于静态库(.lib, .a)以及动态库.so
LIBS += -LD:/codetest/libcurlcpp/libcurl/lib/-llibcurl\
-LD:/codetest/libcurlcpp/libcurl/lib/-lws2_32\
-LD:/codetest/libcurlcpp/libcurl/lib/-lwldap32\
-LD:/codetest/libcurlcpp/libcurl/lib/-lopencv.so\
-LD:/codetest/libcurlcpp/libcurl/lib/-llibzmq.a
- 1
- 2
- 3
- 4
- 5
或者
LIBS += D:/codetest/libcurlcpp/libcurl/lib/libcurl.lib\
D:/codetest/libcurlcpp/libcurl/lib/ws2_32.lib\
D:/codetest/libcurlcpp/libcurl/lib/wldap32.lib
D:/codetest/libcurlcpp/libcurl/lib/opencv.so\
D:/codetest/libcurlcpp/libcurl/lib/opencv.a
- 1
- 2
- 3
- 4
- 5
或者
LIBS += $$PWD/libcurl/lib/libcurl.lib\
$$PWD/libcurl/lib/ws2_32.lib\
$$PWD/libcurl/lib/wldap32.lib
- 1
- 2
- 3
- 4
- 可以用-L指定目录,-l指定库的名称(无需后缀,.lib,.a, .so都适用)注意-l后面没有空格
- 可以直接通过绝对路径和相对路径指定库的完整path(需后缀,.lib,.a, .so都适用),相对路径用$$pwd前缀,路径不允许空格
- LIBS += somepath 这个可以多行写,也可以用“\”隔行
对于动态库dll,必须拷贝到exe执行目录或者在环境变量里配置路径
预编译宏
DEFINES += USE_OPENSSL\
CURL_STATICLIB
- 1
- 2
类似于vs里面在工程里设置预编译选项
平台相关性处理
根据qmake所运行的平台来使用相应的作用域来进行处理
win32
{
SOURCES += 1.cpp
}
else
{
SOURCES += 2.cpp
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8

根据平台进行条件编译
Qt工程pro文件的简单配置(尤其是第三方头文件和库)的更多相关文章
- Qt 工程 pro文件
工作中,感觉pro文件的有些内容真不太懂,现系统性的学习一下.于此备录,分享共勉. 为了更好的理解,先创建一个简单的工程作为实践. [1]创建一个pro文件 1.1 新建proDemo工程.步骤如下: ...
- QT工程pro设置实践(with QtCreator)----非弄的像VS一样才顺手?
源地址:http://my.oschina.net/jinzei/blog/100989?fromerr=DhQJzZQe 相信大家很多和我一样,用多了微软给的便利,用人家的就十分不习惯.于是就琢磨原 ...
- 通过微软的HTML Help Workshop 利用.html文件 生成简单的chm帮助类的文件
1.下载并安装Microsoft HTML Help Workshop 下载链接:http://www.microsoft.com/en-us/download/details.aspx?id=211 ...
- QtCreator添加第三方头文件和类库
在Qt Creator的项目中添加头文件和库 在Qt Creator中的工程中,工程通过.pro文件管理. 额外需要连接的连接库 unix:LIBS += -L your_lib_path -lyou ...
- 多文件协作,extern、static、头文件
多个cpp文件协同工作.使用外部函数.变量时,必须先声明再使用.声明外部函数(一般在main.cpp中),extern可省略(主函数中默认可访问外部函数)extern void RectArea(); ...
- QT工程中添加资源(简单明了)
1. 在工程文件下右击添加新文件 2. 在QT目录下选择QT Resource File 3. 填写资源名称 4. 点击完成就可以看到自己建立的资源了 5. 点击右键添加现有文件,找到自己要添加的资源 ...
- 【第十三篇】mvc下载文件,包括配置xml保护服务端文件不被外链直接访问
这里先说下载文件 <a style="color:black; margin-right:3px;" onclick="dowAtt(' + index + ')& ...
- Windows平台VC++ 6.0 下的网络编程学习 - 简单的测试winsock.h头文件
最近学习数据结构和算法学得有点累了(貌似也没那么累...)...找了本网络编程翻了翻当做打一个小基础吧,打算一边继续学习数据结构一边也看看网络编程相关的... 简单的第一次尝试,就大致梳理一下看书+自 ...
- java servlet中上传文件的简单实现(基于第三方jar)
这里的案例使用了两种文件上传的组件.分别介绍 1.使用JSPSmartUpload完成上传 package test_servlet_package; import java.io.File; imp ...
随机推荐
- PS 如何制作柔和的边框
柔和边框制作 1 新建一个图层,按填充为黑色.(填充当前图层为前景色 A/T+Delete 背景色 CTRL+Delete),不透明度设为60%.混合模式为正片叠底, 2 选择椭圆选择一片区域(也 ...
- javascript一些面试经常使用的问题总结
有关函数调用变量问题 var a =10; function aaa(){ alert(a); } function bbb(){ var a = 20; aaa(); //10 } bbb(); 变 ...
- sql语言复习2
一.查询 select 字段列表 from 表名列表 [where 条件表达式][group by 字段列表[having 条件表达式]] [order by 字段列表[asc|desc]] 含义:在 ...
- session写入数据库
<?php class session { private static $handle = null; private static $ip = null; private static $l ...
- laravel 将数组转化成字符串 再把字符串转化成数组
这是在给阮少翔改代码的时候用的方法, 开始的数据用explored转化成数组不是想要的结果, 我就自己写了一个方法把有用的信息提取出来拼接成一个字符串, 再用explored将字符串转化成数组. ...
- .Net Core表单定义
创建表单 <form asp-controller="Account" asp-action="Login" asp-route-returnurl=&q ...
- STL源代码剖析——基本算法stl_algobase.h
前言 在STL中.算法是常常被使用的,算法在整个STL中起到很关键的数据.本节介绍的是一些基本算法,包括equal.fill.fill_n,iter_swap.lexicographical_comp ...
- Centos7安装配置ansible运维自动化工具
准备至少两台机器 Centos7,这两台机器都关闭 selinux IP:106.13.118.132 服务端(ansible) masterIP:148.70.60.244 节点 slaver 服务 ...
- ubuntu 单网卡双 ip
局域网一套物理网络里有两个 ip 段,单网卡设置多 ip 可实现同时访问两个网段. $ cat /etc/network/interfaces # interfaces(5) file used by ...
- commons.cli.jar 作用
对命令行进行处理的jar包.处理的步骤主要包括定义.分析和询问.(There are three stages to command line processing. They are the def ...