用到pro语法解释:
message()
功能:常用的pro打印,类似printf,Qt5中可以使用(Qt4不知道为什么不能用,可以在Qt5上调试好后放到Qt4上)
示例:
message("My Source Files have $SOURCES")
将会打印出 My Source Files have ./src/main.cpp ./src/func.cpp
提示:有什么奇奇怪怪的想法可以用message来进行打印出来验证
$files(1, 2)
功能:递归搜索文件
参数:
1:搜寻的文件模板路径有.cpp文件
2:是否递归搜索,true - 是, false - 否
示例:
Sample = ./src/*.cpp
$files(Sample, true)
返回
./src/main.cpp
./src/func.cpp
$join(1, 2, 3, 4)
功能:变量拼接内容
参数:
1:变量
2:“胶水”,在多变量之间拼接上去的词
3:头部拼接
4:尾部拼接
示例1:
Sample = LibName
$join(Sample, , , .so)
返回 LibName.so
示例2:
Sample = Dxf
$join(Sample, , -l, )
返回 -lDxf
$section(1, 2, 3, 4)
功能:字符串节选
参数:
1:字符串
2:分割号
3:开始段
4:结束段
示例:
Sample = LibSample.so
$section(Sample, ., 0, 0)
返回 LibSample
$dirname
功能:返回文件的路径,不带文件名的
$basename
功能:返回文件名,不带路径的
$unique
功能:去掉重复的变量
#库路径
LibPath = ../libs
#外部头文件,相对路径,一般指库的头文件
ExternalHeader = \
$files("../includes/*.h", true) \
$files("../lib/*.h", true)
#搜寻该路径底下的文件
SourceDir = ./Src
#递归搜寻所有.cpp .h .ui文件
for(var, SourceDir) {
SOURCES += $files($join(var, , , /*.cpp), true)
HEADERS += $files($join(var, , , /*.h) , true)
FORMS += $files($join(var, , , /*.ui) , true)
}
#搜寻所有头文件所在的路径
INCLUDEPATH = \
$dirname(HEADERS) \
$dirname(ExternalHeader)
INCLUDEPATH = $unique(INCLUDEPATH)
#根据Path当层寻找.so和.a文件,返回相对路径
LibSo = $files($join(LibPath, , , /*.so), false)
LibA = $files($join(LibPath, , , /*.a) , false)
#去路径
LibSo = $basename(LibSo)
LibA = $basename(LibA)
#去后缀
LibSo = $section(LibSo, ., 0, 0)
LibA = $section(LibA, ., 0, 0)
#库名整合
LibName = \
$LibSo \
$LibA
#lib头替换-l
LibName = $replace(LibName, lib, -l)
#添加库
LIBS += $LibName
#为了Qt4的运行环境库路径自动设置,一定要手动写全路径,不能使用变量
LIBS += -L../libs
本文暂时没有评论,来添加一个吧(●'◡'●)