当前位置: 首页 > news >正文

网站维护服务公司拼多多免费推广软件

网站维护服务公司,拼多多免费推广软件,wordpress 主题 api,网站开发工程师和软件工程QT判断平台和生成版本设置输入目录 pro工程文件中常用的宏定义Chapter1 QT判断平台和生成版本设置输入目录Chapter2 Qt pro文件中判断 x86/arm(aarch64)交叉编译环境#xff0c;区分 linux/windows系统, debug/release版本Chapter3 Qt的版本判断、跨平台选择与pro工程文件输出… QT判断平台和生成版本设置输入目录 pro工程文件中常用的宏定义Chapter1 QT判断平台和生成版本设置输入目录Chapter2 Qt pro文件中判断 x86/arm(aarch64)交叉编译环境区分 linux/windows系统, debug/release版本Chapter3 Qt的版本判断、跨平台选择与pro工程文件输出设定$$$Chapter4 QT改变EXE生成路径增加EXE图标指定生成的EXE名称Chapter5 Qt 修改pro文件可以将生成exe或dll文件复制到多个地方 个人写的一些简单工程配置项目 #//统一Windows平台的方法 win32 {CONFIG(debug,debug|release){ #debug OBJECTS_DIR $$PWD/../bin_mingw32_debug/objs DESTDIR $$PWD/../bin_mingw32_debug }else{ #release OBJECTS_DIR $$PWD/../bin_mingw32_release/objs DESTDIR $$PWD/../bin_mingw32_release }}#//仅msvc编译器 win32-msvc*{ DESTDIR $$PWD/../bin_msvc }pro工程文件中常用的宏定义 TEMPLATE appHEADERS需要包含的头文件的列表。SOURCES需要的源文件的列表。FORMS需要的.ui文件的列表。LEXSOURCES所有lex源文件的列表。YACCSOURCES所有yacc源文件的列表。TARGET可执行应用程序的名称。默认值为项目文件的名字。DESTDIR放置可执行程序目标的目录。OBJECTS_DIR放置obj中间文件的目录。MOC_DIR: moc转换文件路径。RCC_DIR: 资源文件路径。UI_DIRui文件转换的路径。RESOURCES需要包含的资源文件。LIBS依赖库的路径和名称 -L{xxdirxx} -l{xxnamexx}。LIBEXT: 产生lib的后缀。DEFINES应用程序所需的额外的宏定义列表。INCLUDEPATH应用程序所需的额外的包含路径列表。DEPENDPATH应用程序所依赖的搜索路径。VPATH寻找补充文件的搜索路径。DEF_FILE只有Windows需要应用程序所要连接的.def文件。RC_FILE只有Windows需要应用程序的资源文件。RES_FILE只有Windows需要应用程序所要连接的资源文件。TRANSLATIONS: 多国语言支持文件。INSTALLS: 要安装的文件。target.path: 安装的路径。Chapter1 QT判断平台和生成版本设置输入目录 在pro文件添加 greaterThan(QT_MAJOR_VERSION,4){TARGET_ARCH$${QT_ARCH} }else{TARGET_ARCH$${QMAKE_HOST.arch} } contains(TARGET_ARCH, x86_64){CONFIG(debug,debug|release){MOC_DIR build/x64/tmp_debug/mocRCC_DIR build/x64/tmp_debug/rccUI_DIR build/x64/tmp_debug/uiOBJECTS_DIR build/x64/tmp_debug/objDESTDIR build/x64/bin/debug/}else{MOC_DIR build/x64/tmp_release/mocRCC_DIR build/x64/tmp_release/rccUI_DIR build/x64/tmp_release/uiOBJECTS_DIR build/x64/tmp_release/objDESTDIR build/x64/bin/release/} }else{CONFIG(debug,debug|release){MOC_DIR build/x86/tmp_debug/mocRCC_DIR build/x86/tmp_debug/rccUI_DIR build/x86/tmp_debug/uiOBJECTS_DIR build/x86/tmp_debug/objDESTDIR build/x86/bin/debug/}else{MOC_DIR build/x86/tmp_release/mocRCC_DIR build/x86/tmp_release/rccUI_DIR build/x86/tmp_release/uiOBJECTS_DIR build/x86/tmp_release/objDESTDIR build/x86/bin/release/} }Chapter2 Qt pro文件中判断 x86/arm(aarch64)交叉编译环境区分 linux/windows系统, debug/release版本 原文链接 TARGET这个配置项用来指定最后生成的目标应用程序的名称。DESTDIR设置目标文件的输出目录如exe或lib文件。OBJECTS_DIR放置obj中间文件的目录。MOC_DIR: moc转换文件的路径。RCC_DIR: 资源文件的路径。UI_DIRui文件转换的路径。使用的arm编译器为aarch64 很多博客都是使用 QMAKE_HOST.arch 进行判断但这并不能分辨出 aarch64 编译器有的更离谱的是定义一个函数实在让人无言自行尝试解决方案如下 contains(QT_ARCH, arm64){ message(arm64) #在这里处理arm64所需 }else{ message(x86) }linux/windows 区分 win32{ //do something... } unix{ //do something... }debug / release 区分 CONFIG debug_and_release CONFIG(debug, debug|release){ //处理debug }else{ //处理release }都可以组合使用如 CONFIG debug_and_release CONFIG(debug, debug|release){ //处理debugwin32{}unix{contains(QT_ARCH, arm64){message(arm64)}else{message(x86)}} }else{ //处理releasewin32{}unix{} }若根据某些宏是否存在来执行不同的配置则可以 添加宏定义 DEFINES TEST 判断宏定义是否存在 contains(DEFINES, TEST) {message(--(DEFINES, TEST)) } else {message(--not contains (DEFINES, TEST)) }Chapter3 Qt的版本判断、跨平台选择与pro工程文件输出设定$$$ 原文链接https://blog.csdn.net/u013441358/article/details/123843735 跨平台代码 在Pro文件中区分 在工程文件中使用unix、win32、macx等标号区分不同的平台。可以使用标号冒号的形式指定单行内容在特定平台生效也可以使用大括号选择多行内容在特定平台生效。注意使用多行选择时左大括号和平台名需要在同一行中否则会失效。 windows平台多行写法示例 //统一Windows平台的方法 win32 {}//仅msvc编译器 win32-msvc*{} Linux或unix平台多行写法示例 统一Linux或unix平台写法 unix {}//仅g编译器 linux-g*{} macOS平台多行写法示例 macx {}macx:qesp_mac_framework {} 需要特别注意的是macOS平台也是unix平台的一种因此上述Linux或unix平台写法也包含了macOS系统。如果要指定非macOS系统的Unix平台那么需要使用如下写法 unix:!macx {} 在代码中区分 使用宏定义选择不同平台进行条件编译。不同平台的宏定义使用示例如下 #if defined Q_OS_DARWIN //Q_OS_MACqputenv(QT_MAC_WANTS_LAYER, 1); #elif defined Q_OS_LINUX //Q_OS_LINUX#elif defined Q_OS_WIN32 // Q_OS_WIN32#else#endifpro工程输出 Release与Debug控制 Release编译与Debug编译的选择同样分为单行指定和多行指定。单行指定的示例如下 CONFIG(debug, debug|release)LIBS -L../lib1 -lhellod CONFIG(release, debug|release)LIBS -L../lib2 -lhello多行指定的示例如下 CONFIG(debug, debug|release){} else {}之所以采用CONFIG(debug, debug|release)这样的写法主要是因为要确保只能有一个条件处于active的状态。两个参数前者是要判断的active的选项后者是互斥的选项的一个集合。 Qt Creator的构建配置中除了Debug与Release之后还有Profile。Qt在qmake项目.pro文件时会将Profile配置视作Release配置解析。 编译生成文件 TARGET这个配置项用来指定最后生成的目标应用程序的名称。 DESTDIR设置目标文件的输出目录如exe或lib文件。 OBJECTS_DIR放置obj中间文件的目录。 MOC_DIR: moc转换文件的路径。 RCC_DIR: 资源文件的路径。 UI_DIRui文件转换的路径。 使用示例1 win32:CONFIG(release, debug|release):{DESTDIR $$PWD/releaseUI_DIR $$PWD/tmp/release/uiMOC_DIR $$PWD/tmp/release/mocOBJECTS_DIR $$PWD/tmp/release/objRCC_DIR $$PWD/tmp/release/rcc } else:win32:CONFIG(debug, debug|release):{DESTDIR $$PWD/debugUI_DIR $$PWD/tmp/debug/uiMOC_DIR $$PWD/tmp/debug/mocOBJECTS_DIR $$PWD/tmp/debug/objRCC_DIR $$PWD/tmp/debug/rcc }使用示例2 CONFIG(debug, debug|release) {build_type debug } else {build_type release }DESTDIR $$build_type/out OBJECTS_DIR $$build_type/obj MOC_DIR $$build_type/moc RCC_DIR $$build_type/rcc UI_DIR $$build_type/ui执行系统命令 使用**QMAKE_PRE_LINK和QMAKE_POST_LINK定义需要在编译前与编译后需要执行的系统命令。一般可以利用此功能将一些依赖的头文件、库文件等复制到指定的目录中。**执行多条系统命令时从第二条命令开始要加上“”作为分隔否则会导致命令执行失败。示例如下 win32 {QT_PROJ_ROOTDIR E:/Working/QtDev# Copy the interface file of the plugin to the folderInterfaceFile $$PWD/ipluginmanager.h# 将LibFile中的/替换为\InterfaceFile $$replace(InterfaceFile, /, \\)# Copy the library of the plugin to the folderLibraryFile $$DESTDIR/EWhalesPluginManager.dll# 将LibFile中的/替换为\LibraryFile $$replace(LibraryFile, /, \\)# 输出目录也是一样,要将/替换为\OutLibFile $$QT_PROJ_ROOTDIR/Plugins/OutLibFile $$replace(OutLibFile, /, \\)QMAKE_POST_LINK copy $$InterfaceFile $$OutLibFileQMAKE_POST_LINK copy $$LibraryFile $$OutLibFile }完整示例 在实际的项目工程文件中会同时使用操作系统选择、构建类型选择、指定输出目录、编译后命令执行等功能。为了规范多个项目的编译输出框架可以使用子项目包含的形式。在子项目中制定好编译输出的一般规则并使多个工程文件都包含同一个子项目.pri文件。以下提供一个来源于真实项目的完整示例。 通用子项目文件 CONFIG(debug, debug|release) {build_type debug } else {build_type release }DESTDIR ../output/$$build_type OBJECTS_DIR ./$$build_type/obj MOC_DIR ./$$build_type/moc RCC_DIR ./$$build_type/rcc UI_DIR ./$$build_type/ui# 指的是当前正在解析的.pro文件的目录的完整路径。 # 在编写支持影子构建的项目文件时PWD很有用。 message(PWD is: $$PWD) # 指的是qmake生成的Makefile的目录的完整路径即构建目录。 # 例如build-??-Desktop_Qt_5_12_8_MSVC2017_64bit-Debug message(OUT_PWD is: $$OUT_PWD) # 正在使用的项目文件的路径 message(_PRO_FILE_ is: $$_PRO_FILE_) # 包含目录的路径该目录包含正在使用的项目文件 message(_PRO_FILE_PWD_ is: $$_PRO_FILE_PWD_)具体工程文件 include(./ewhales_qt.pri)QT core gui network greaterThan(QT_MAJOR_VERSION, 4): QT widgetsunix:QMAKE_CXXFLAGS -stdc11 TARGET EWhalesPluginManager TEMPLATE lib #TEMPLATE appCONFIG pluginSOURCES main.cpp\pluginmanager.cpp \pluginmanager.settings.cpp \pluginmanager.updater.cpp \pluginmanager_panel.cpp \pluginmanager_panel.uislots.cppHEADERS \ipluginmanager.h \pluginmanager.hFORMS \pluginmanager_panel.uiINCLUDEPATH ../lib INCLUDEPATH ../../Plugins#win32:LIBS -lsetupapi -ladvapi32 -luser32win32 {QT_PROJ_ROOTDIR E:/Working/QtDev#### Copy the interface file of the plugin to the folder ####InterfaceFile $$PWD/ipluginmanager.h# 将LibFile中的/替换为\InterfaceFile $$replace(InterfaceFile, /, \\)#### Copy the library of the plugin to the folder ####LibraryFile $$DESTDIR/EWhalesPluginManager.dll# 将LibFile中的/替换为\LibraryFile $$replace(LibraryFile, /, \\)# 输出目录也是一样,要将/替换为\OutLibFile $$QT_PROJ_ROOTDIR/Plugins/OutLibFile $$replace(OutLibFile, /, \\)QMAKE_POST_LINK copy $$InterfaceFile $$OutLibFileQMAKE_POST_LINK copy $$LibraryFile $$OutLibFile }unix:!macx {QT_PROJ_ROOTDIR /home/alwhales/QtDev#### Copy the interface file of the plugin to the folder ####InterfaceFile $$PWD/ipluginmanager.h#### Copy the library of the plugin to the folder ####LibraryFile $$DESTDIR/libEWhalesPluginManager.so# 输出目录也是一样,要将/替换为\OutLibFile $$QT_PROJ_ROOTDIR/Plugins/QMAKE_POST_LINK cp $$InterfaceFile $$OutLibFileQMAKE_POST_LINK cp $$LibraryFile $$OutLibFile }macx {QT_PROJ_ROOTDIR /Users/wangtao/QtProj#### Copy the interface file of the plugin to the folder ####InterfaceFile $$PWD/ipluginmanager.h#### Copy the library of the plugin to the folder ####LibraryFile $$DESTDIR/libEWhalesPluginManager.dylib# 输出目录也是一样,要将/替换为\OutLibFile $$QT_PROJ_ROOTDIR/Plugins/QMAKE_POST_LINK cp $$InterfaceFile $$OutLibFileQMAKE_POST_LINK cp $$LibraryFile $$OutLibFile }RESOURCES \resource.qrcHEADERS \pluginmanager_panel.hinclude ($$PWD/update_tool/qsimpleupdater/QSimpleUpdater.pri)最终的项目目录结构为 参考链接1关于Qt Creator项目中.pro文件中的相对路径 参考链接2Qt Creator指定临时文件生成目录(MOC_DIR/RCC_DIR等)和PWD/OUT_PWD/.pro官方文档 Chapter4 QT改变EXE生成路径增加EXE图标指定生成的EXE名称 原文链接https://blog.csdn.net/qq_28178271/article/details/131879509 Chapter5 Qt 修改pro文件可以将生成exe或dll文件复制到多个地方 原文链接https://blog.csdn.net/hss2799/article/details/125299326 直接上代码在pro文件里面添加 # 将给定文件复制到目标目录相当于一个函数 defineTest(copyToDestDir) {files $$1dir $$2# 替换Windows目标路径中的斜杠win32:dir ~ s,/,\\,gfor(file, files) {# 替换Windows源路径中的斜杠win32:file ~ s,/,\\,g# 复制命令QMAKE_POST_LINK $$QMAKE_COPY $$shell_quote($$file) $$shell_quote($$dir) $$escape_expand(\\n\\t)}export(QMAKE_POST_LINK) } #需要复制的文件清单可以是exe可以是dll或其他的 FROM_FILES \$$PWD/../bin/UP5000/StartScreen.exe\$$PWD/../bin/UP5000/test.lib\$$PWD/../bin/UP5000/other.dll#复制到指定文件夹 copyToDestDir($$FROM_FILES, $$PWD/../bin/UP5500/) copyToDestDir($$FROM_FILES, $$PWD/../bin/UR6000/) copyToDestDir($$FROM_FILES, $$PWD/../bin/UR8000/) FROM_FILES 是需要复制的源文件清单 $$PWD/…/bin/UP5500/ 是复制的目标路径根据自己的需要进行调整
http://www.sadfv.cn/news/325127/

相关文章:

  • 自建国外购物网站网站建设的功能有哪些
  • 百度网盟推广 网站网页设计作业个人简历代码怎么写
  • 做信息网站要办icp证吗桂林到阳朔怎么走最方便
  • 网站建设51cto江苏省住房和城市建设厅网站
  • .net程序员网站开发工程师黄石网站设计
  • 石家庄市桥西区建设局网站免费网络游戏大全
  • 卖货小程序seo批量建站
  • 杭州模板开发建站素材下载网站开发文档
  • 合肥市建设工程造价管理站网站宝安中心做网站
  • 重庆企业网站seo上海app外包
  • 按营销型网站要求重做网站 费用小米路由可以做网站吗
  • 制作一个简单网站男人最爱的做网站
  • 西安凤城二路网站建设自己做的网站被攻击了
  • 网站推广策略与问题分析淄博网站制作网页营销
  • 企业为什么做网站推广大诚当道设计公司
  • 裕华区建设局网站微信商城怎么进
  • 用KEGG网站做通路富集分析软件开发公司简介模板免费
  • 微信公众平台网站开发建设银行网站怎么登录密码忘了怎么办
  • 衡阳市网站建设科技百科
  • 怎么在赶集网上做招聘网站湖北城乡建设网站
  • 网站建设历程wordpress侧栏滑动
  • 深圳网站建设制作哪家便宜百度网盟推广体验中心
  • 厦门建设网站的做原型网站
  • 网站极速备案seo站长工具查询系统
  • 站群推广网站后台管理系统怎么做
  • 手机app开发公司哪家好厦门seo优化推广
  • 视频素材交易网站建设娄底网站制作
  • 小公司使用的网站开发wordpress4.7.3
  • 旅行网站的建设目录泰安市平台公司
  • 备案ip 查询网站查询网站查询伊犁网站建设