我正在使用qtcreator 4.0.3,我尝试创建一个目录结构 所有构建,如下所示:
〜/建造/ project01 〜/编译/ project02 ... 〜/生成/ projectNN
我正在使用这个.pro文件:
:><------- Cutting ------------
#
# BUILDDIR Where the executable file was create
#
BUILDDIR = $$HOME_PATH/Builds/$$APP_NAME
#
# All Directory of temporary files
#
OBJECTS_DIR = $$BUILDDIR/obj
MOC_DIR = $$BUILDDIR/moc
RCC_DIR = $$BUILDDIR/rcc
UI_DIR = $$BUILDDIR/ui
DESTDIR = $$BUILDDIR/bin
#
# If the dirs not exists, I'll create it
#
THis instructions are ignored
Any directory was created.
!exists( $$DESTDIR ) {
message("Creating $$DESTDIR struct")
mkpath( $$DESTDIR )
}
!exists( $$OBJECTS_DIR ) {
message("Creating $$OBJECTS_DIR")
mkpath( $$OBJECTS_DIR )
}
!exists( $$MOC_DIR ) {
message("Creating $$MOC_DIR")
mkpath( $$MOC_DIR )
}
!exists( $$RCC_DIR ) {
message("Creating $$RCC_DIR")
mkpath( $$RCC_DIR )
}
!exists( $$UI_DIR ) {
message("Creating $$UI_DIR")
mkpath( $$UI_DIR )
}
:><------- Cutting ------------
但这不起作用。始终qtcreator使用默认目录结构 在工具 - &gt;选项 - &gt;构建和运行 - >默认构建目录中配置。
简单的是忽略了这些说明...... 我做错了吗?
答案 0 :(得分:0)
这是一种反模式,它通常不起作用,因为没有人使用qmake项目期望它们表现得那样:Qt Creator没有,其他人没有,等等。
对于任何给定项目,您可以通过在构建目录中执行qmake来设置构建目录。例如,假设您希望构建~/src/myproject/myproject.pro
:
mkdir -p ~/build/myproject
cd ~/build/myproject
qmake ~/src/myproject
gmake -j8
要在子文件夹中构建多个项目,您应该有一个引用它们的顶级subdirs
项目。 E.g。
+--- myproject
+--- myproject.pro
+--- lib1
| +--- lib1.pro
| ...
+--- lib2
| +--- lib2.pro
| ...
+--- app1
. +--- app1.pro
. ...
etc.
源目录结构将在build文件夹中复制。除了在引用子项目构建的目标时,例如,您通常不应该关注构建文件夹中的内容。如果app1
取决于lib2
,则需要将构建产品添加为依赖项。 This answer显示了如何做到这一点。