打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt:pro文件


#所有工程的pro文件应包含(include)本文件
#包含位置应当在pro文件的末尾

ISCS6000_HOME = $$PWD/../

#注:“$$”为获取变量的值,“$$()”为获取环境变量的值,不可混淆,详见QT文档
ISCS6000_PLATFORM = $$(ISCS6000_PLATFORM)
isEmpty(ISCS6000_PLATFORM) {
error("Error, ISCS6000_PLATFORM is empty!")
}

#---------------------------------------------------------------------------------------------------

#虽然Unix、Linux下不要求严格区分,但是为了便于管理,所有平台区分Debug、Release
CONFIG(debug, debug|release) {
DIR_DEBUG_RELEASE=_debug
}
CONFIG(release, debug|release) {
DIR_DEBUG_RELEASE=_release
}

#---------------------------------------------------------------------------------------------------

linux-g * {
message("current os-compiler linux-g ")

#程序中可判断此宏定义进行条件编译
DEFINES = OS_LINUX

#避免gcc 4.8 报警:boost/optional/optional.hpp:968:5: 警告:未使用的参数‘rhs’
#原因是gcc该函数的默认实现中没有使用rhs参数,换用BOOST定义的实现
DEFINES = BOOST_OPTIONAL_DETAIL_NO_DEFAULTED_MOVE_FUNCTIONS=1
}

win32-msvc* {
message("current os-compiler windows-msvc")

#程序中可判断此宏定义进行条件编译
DEFINES = OS_WINDOWS

#设置程序的运行时字符编码
QMAKE_CXXFLAGS =/execution-charset:utf-8

#由于Windows下一些第三方库的名称增加了“lib”,此处进行统一化处理
#各工程的pro文件中就不需要按平台条件书写,统一使用Unix、Linux的方式书写即可
contains(LIBS, -lprotobuf) {
LIBS -= -lprotobuf
LIBS = -llibprotobuf
}

contains(LIBS, -lzmq) {
LIBS -= -lzmq
LIBS = -llibzmq
}
contains(LIBS, -lczmq) {
LIBS -= -lczmq
LIBS = -llibczmq
}
contains(LIBS, -lprotobuf) {
LIBS -= -lprotobuf
LIBS = -llibprotobuf
}

contains(LIBS, -lprotobuf-lite) {
LIBS -= -lprotobuf-lite
LIBS = -llibprotobuf-lite
}
contains(LIBS, -lprotoc) {
LIBS -= -lprotoc
LIBS = -llibprotoc
}

contains(LIBS, -llua) {
LIBS -= -llua
LIBS = -lliblua
}

LIBS = -lws2_32
}

solaris-g * {
message("current os-compiler solaris-g ")

#程序中可判断此宏定义进行条件编译
DEFINES = OS_SOLARIS

LIBS = -ldl \
-lw \
-lgen
}

#关闭BOOST的自动连库
DEFINES = BOOST_ALL_NO_LIB=1

#BOOST使用动态库
DEFINES = BOOST_ALL_DYN_LINK=1

#---------------------------------------------------------------------------------------------------

isEmpty(TARGET) {
error("Error, TARGET is empty!")
}
else {
#设置编译过程临时文件的路径,保持源代码目录清洁
MOC_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/moc
UI_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/ui
UI_HEADERS_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/ui/include
UI_SOURCES_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/ui/src
OBJECTS_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/obj
RCC_DIR = $$ISCS6000_HOME/src/temp/$$TARGET$$DIR_DEBUG_RELEASE/rcc
}

message("OBJECTS_DIR =" $$OBJECTS_DIR)

#---------------------------------------------------------------------------------------------------

#取消为生成的动态库创建软链接,减少文件数量
CONFIG = unversioned_libname unversioned_soname

#设置运行时找动态库的路径rpath,对采用ELF文件格式的系统有效(Unix、Linux)
#“$ORIGIN”为文件所在路径,多个路径间用英文冒号分隔
#Windows下优先在程序所在目录找动态库
QMAKE_RPATHDIR = :\'\$\$ORIGIN\'

#编译器找头文件的路径
INCLUDEPATH = $$ISCS6000_HOME/src/include \
$$ISCS6000_HOME/src/include/common \
$$ISCS6000_HOME/src/include/public \
$$ISCS6000_HOME/src/include/protocol \
$$ISCS6000_HOME/src/idl_files \
$$ISCS6000_HOME/src/3rd/include \
$$ISCS6000_HOME/src/3rd/include/breakpad \
$$ISCS6000_HOME/src/3rd/include/QtXlsx/xlsx \

#连接器找直接链接的库的路径
LIBS = -L$$ISCS6000_HOME/platform/$$ISCS6000_PLATFORM$$DIR_DEBUG_RELEASE/

#连接器找隐含依赖(直接链接的库所链接的库)库的路径
QMAKE_RPATHLINKDIR = $$ISCS6000_HOME/platform/$$ISCS6000_PLATFORM$$DIR_DEBUG_RELEASE/

#生成路径,可执行文件和库文件都放在一起
DESTDIR = $$ISCS6000_HOME/platform/$$ISCS6000_PLATFORM$$DIR_DEBUG_RELEASE/

message("DESTDIR =" $$DESTDIR)

来源:http://www.icode9.com/content-4-212051.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android Studio在Gradle中调用cmd脚本
使用Gradle构建Android项目
Android平台Java代码的条件编译问题
QT编译Serial-Studio多功能串口数据可视化工具
Android Studio 常用功能介绍
FlTk Tutorial for CS 638
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服