关于Qt的.pro文件的编写

版权声明: https://blog.csdn.net/guimaxingtian/article/details/80946503

  刚开始学习Qt的时候,出现一些编译错误后,很多论坛上都教大家用一下qmake试试,当时觉得很不理解,但由于初学,也没有深究,只是觉得好神奇,因为很多时候确实是用一下qmake就好了,直到前段时间,因为一个项目,要用到很多的第三方库,接触到了.pro文件的编写,也对qmake有了一定的认识,关于qmake,官方这里讲的很详细了,大家可以参考学习一下。大多数时候在Qt里编写程序时是不需要自己去改.pro文件的,在Qt Creator下会自动生成,当你添加文件后,执行一下qmake就会添加相应的语句,第三方库什么的Qt Creator里也提供了右键项目添加库的选项。由于碰到的项目是基于Qt插件机制实现的,然后又有很多第三方库需要添加,这时候就自己写了,我这里主要提供一个编写.pro文件的例子,也为了留个记录,方便将来自己可以翻阅。

#编译动态库插件
TEMPLATE = lib  #一般大家编写应用时这里就是Template = app
CONFIG += plugin #这里由于是插件项目
#这里的“DemoPlugin”与Q_EXPORT_PLUGIN2中的插件名字要一致
TARGET = $$qtLibraryTarget(DemoPlugin)

#使用当前工程路径时,使用$$PWD/../
#使用绝对路径时,使用类似于"C:/Program Files/../“,如果路径中包含空格,要加双引号
#使用环境变量路径时,使用"$$(UEDIR)/../",同样,路径中有中文时需要加引号

#目标位置,生成.lib/.dll/.pdb文件
DESTDIR = $$PWD/plugin

#不要写成需要管理员权限才能操作文件的位置,因为需要管理员权限,所以可能无法生成相应文件
#下面这句注释掉的是因为使用了UEDIR,这是个环境变量,也是个路径
#DESTDIR = "$$(UEDIR)/Plugins/"

#预编译宏定义
DEFINES +=DEMO_LIB

#指定所有中间文件.o(.obj)放置的目录
OBJECTS_DIR += $$PWD/release

#使用到的qt库
QT += core gui sql xml network

#头文件
HEADERS += $$PWD/export.h \
    DemoPlugin.h \
    ExtendProxy.h

#源文件
SOURCES += $$PWD/DemoPlugin.cpp \
    ExtendProxy.cpp

#添加第三方库
#OSG库
unix|win32: LIBS += -L$$PWD/SDK/3rdparty/osg3.3.2/lib/ -losg  \
                    -losgdb  \
                    -losgga  \
                    -losgqt  \
                    -losgviewer  \
                    -losgUtil  \
                    -lOpenThreads

INCLUDEPATH += $$PWD/SDK/3rdparty/osg3.3.2/inc
DEPENDPATH += $$PWD/SDK/3rdparty/osg3.3.2/inc

#OSGEarth库
unix|win32: LIBS += -L$$PWD/SDK/3rdparty/osgEarth2.7/lib/ -losgEarth  \
                    -losgEarthUtil

INCLUDEPATH += $$PWD/SDK/3rdparty/osgEarth2.7/inc
DEPENDPATH += $$PWD/SDK/3rdparty/osgEarth2.7/inc

上面就是一个简单的.pro文件了,实际的.pro文件有很多行,我删减了很多,这样可以看出基本的写法,掌握了编写.pro文件的方法后,遇到一些比较大的项目配置起来就比较方便了。当然还有一个神器叫Cmake,也是相当的强大好用,跟它比起来,qmake显得有点小众了。

猜你喜欢

转载自blog.csdn.net/guimaxingtian/article/details/80946503