我在尝试指定构建目录时遇到问题(在将它们复制到DESTDIR路径之前存储所有文件的目录)。
我的.pro文件中有以下值:
DESTDIR = E:/Development/project/build/core/debug
OUT_PWD = E:/Development/project/build/core/debug
OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui
现在,所有文件最终都会在该位置结束,但是在构建期间,编译器始终使用“E:/ Development / build / MinGW_32bit-Debug / src / core”文件夹(请注意缺少的项目路径)。这很烦人,因为我想使用/ Project / build目录作为这个位置(在我的git仓库中没有跟踪)。
理想情况下,我希望此路径为:E:\Development\project\build\src\core\debug
。
我想要这样做的原因是构建过程具有相同的位置以包括来自(它是一个子目录项目)的已编译库。
我查看了Tools > Options > Build & Run > General
设置,默认的构建目录是:build/build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}
我查看了我的project.pro.user文件,找到了以下行:
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Development/build/MinGW_32bit-Debug</value>
但是我无法更改此值。如果我直接在文件中编辑此行,只要我再次打开Qt Creator,更改就会恢复。
这是Qt Creator的事情,还是qmake的事情?我最好使用不同的构建系统,比如CMake吗?
答案 0 :(得分:3)
通过在构建目录中启动qmake
或cmake
来“指定”构建目录。没有必要在.pro
文件中设置它。
Qt Creator在.user
文件中存储项目的构建目录。在项目在Creator中打开时,对Qt Creator之外的此文件所做的任何更改都将丢失。创建者在打开项目时加载文件,或者如果它不存在则创建一个新文件。
当Creator通过调用qmake
或cmake
启动构建时,它会在构建目录中启动该过程。这也是你应该如何从命令行手动构建项目。
最后,覆盖中间构建结果的目标毫无意义。它们位于构建目录中的某个位置,这一切都很重要。无论如何,你都没有直接使用这些文件。
构建qmake项目的习惯方法:
mkdir project-build
cd project-build
qmake ~/project-src
make -j
构建文件夹不应该在源树中!
我最近开始将它们保存在$TEMP
/ %TEMP%
中:手动清除所有类型的测试项目的陈旧版本在一段时间后变旧:)