qmake 自定义 Makefile 文件输出

阅读更多

        使用QCreator  +Git 的时候因为QCreator 的自己生成项目文件在其他机器上面不能使用(编译步骤会还原成只剩qmake-make)。导致一些自定义编译步骤和一些脚本操作不在能用。现在,我们可以通过 qmake 的自定义 Makefile 文件输出达到这一目地。

        比如我这边用了第三方编译好的静态库,编译时候拷贝了头文件和 LIBS += -L ./ -llibname 这样的选项,这时如果我们选择用 Shadow build 指定编译到其他目录去的时候,qmake生成make文件是不能找到-l中的的相关静态库文件的。这时候自定义 Makefile 文件输出就有用了。

        qmake的pro文件中有这个变量QMAKE_EXTRA_TARGETS 这个可以理解为额外编译目标、还有PRE_TARGETDEPS可以理解为预编译目标依赖 ,比如下面这个

mybuild.target=mybuild

win32{
mybuild.commands=${COPY} ../project/libname-mingw.a libname.a
}else{
mybuild.commands=${COPY} ../project/libname-gcc.a libname.a
}

QMAKE_EXTRA_TARGETS += mybuild

PRE_TARGETDEPS += mybuild

 像上面这个就是定义了一个在Makefile中的一个编译目标mybuild

    然后make的时候,在我们编译目标文件之前就执行mybuild。这样就保证了编译时候库文件就拷贝到编译目录里面。不需要在QCreator里面设置编译步骤去拷贝了,其commands 里面还可以直接调用本地脚本执行更多的方法。

 

 

你可能感兴趣的:(Qt,Qmake,QCreator)