Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt创建者:加载位于子目录中的项目文件_C++_Qt_Qt Creator - Fatal编程技术网

C++ Qt创建者:加载位于子目录中的项目文件

C++ Qt创建者:加载位于子目录中的项目文件,c++,qt,qt-creator,C++,Qt,Qt Creator,我正在处理的旧项目具有以下文件夹层次结构: src |--- folder1 |--- folder2 |--- Buildfiles |--- my_app.pro |--- components |--- comp1.pro |--- comp2.pro 构建项目的pro文件是my_app.pro,其中包括以下行: INCLUDEPATH = folder1 folder2 include(components/comp1.pro)

我正在处理的旧项目具有以下文件夹层次结构:

src
|--- folder1
|--- folder2
|--- Buildfiles
    |--- my_app.pro
    |--- components
        |--- comp1.pro
        |--- comp2.pro     
构建项目的pro文件是my_app.pro,其中包括以下行:

INCLUDEPATH = folder1 folder2
include(components/comp1.pro)
include(components/comp2.pro)
如果我从src目录运行qmake:
qmake Buildfiles/my_app.pro
项目将干净地生成。 如果我现在尝试使用Qt Creator打开my_app.pro文件,它不会加载任何头文件或源文件(在folder1和folder2中),因为(我假设)Qt Creator将在当前 folder1和folder2的目录,但找不到它们。但它确实加载了组件/compX.pro

有没有一种方法可以让Qt Creator在不更改pro文件本身的情况下正确加载pro文件(因为有客户机代码从src目录构建它)? 通过编写一个新的短pro文件来加载my_app.pro文件


谢谢你的建议

是的!如果更改my_app.pro文件不是一个选项,则可以在根文件夹中添加subdirs.pro文件,该文件只包含指向所有子目录的相对路径,这些子目录是'subdirs+='qmake系统变量的参数。这应该很有效


供参考-

谢谢。不幸的是,这不起作用。当Qt Creator解析Buildfiles/my_app.pro时,它似乎仍然找不到folder1和folder2,因为它假定路径是相对于Buildfiles目录的。使用$$PWD qmake系统变量指定相对于它的路径。能否基于我上面给出的文件夹层次结构提供完整的解决方案?非常感谢。