问题描述
我正在尝试建立树外版本,因此我可以克隆我的存储库并保持原始状态不变。 我希望qmake允许这样做。预期用途是
git clone <my-sources>
mkdir build && cd build
qmake ../my-sources
make
#include "custom/dir/custom.h"
int main(){}
应生成此custom.h
,因此在我定义的test.pro
中
custom_target_generated_dirs.target = custom/dir
custom_target_generated_dirs.commands = mkdir -p $$custom_target_generated_dirs.target
custom_target_headers.target = $$custom_target_generated_dirs.target/custom.h
custom_target_headers.depends = $$custom_target_generated_dirs.target
custom_target_headers.commands = cat custom.h.template > $$custom_target_headers.target
QMAKE_EXTRA_TARGETS += custom_target_headers custom_target_generated_dirs
SOURCES = client.cpp
运行qmake时,生成的makefile定义相对于源目录相对于文件的依赖关系:
client.o: ../client.cpp ../custom/dir/custom.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o client.o ../client.cpp
这使得无法构建树外:我一定不能将生成的代码放在源树中。确实,这也没有建立:
~/build$ qmake ../qmaketest/ && make
make: *** No rule to make target '../qmaketest/custom/dir/custom.h',needed by 'client.o'. Stop.
如何告诉qmake向构建树生成C ++编译依赖项?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)