Qt开发中,可以在.pro文件中设置一些宏定义的值,来改变工程的编译配置。如下图所示,一个最基本的工程中.pro文件中,会有QT
、CONFIG
、SOURCE
、TARGET
等宏定义的设置,其中QT
指定工程用的qt的功能模块,SOURCE
指定工程源文件,TARGET
指定生成的目标文件,有的工程还会添加HEADERS
与LIBS
的宏定义,用于指定工程编译所需的头文件核动态库文件的路径与名称。
那么在c++代码是否可以获取到这些宏定义呢?
在一个QT工程代码中,可以非常方便的用"QCoreApplication::applicationDirPath()"程序来获取可执行文件的路径,但是如果c++程序中想获取工程源代码的路径(非可执行文件路径)的话,就有些难度了,因为并没有相应的API函数,并且编译后生成的可执行文件与源码目录并没有关系。
在QT工程的.pro文件则可以很轻易做到这点,用$${PWD}
就指向了当前.pro文件的路径,一般也就是工程源码路径。接下来就以在c++程序中获取工程源码路径为例,讲一下如何在c++程序中引用.pro文件中的宏定义。
1. DEFINES宏
Qt工程中可以通过在.pro文件中添加