在不同的目录中使用相同的文件名构建Qt项目

  • 本文关键字:文件名 构建 Qt 项目 c++ qt
  • 更新时间 :
  • 英文 :


在一个典型的C++应用程序(没有Qt(中,我可能有以下内容:

app/include/namespace1/Foo.h

app/src/namespace1/Foo.cpp

app/include/namespace2/Foo.h

app/src/namespace2/Foo.cpp

其中"应用程序";是项目的根文件夹。这些文件中的类是:

//In app/include/namespace1/Foo.h
namespace namespace1 {
class Foo;
}
//In app/include/namespace2/Foo.h
namespace namespace2 {
class Foo;
}

在像eclipse这样的构建系统中,每个.cpp文件的对象文件都将构建到不同的子目录中。

在Qt中,我在每个文件夹中创建了一个.pri文件,其中包含includeSOURCESHEADERS语句。但是,当Qt构建程序时,它会将所有对象文件放在同一目录中。因此,[build-output]/Foo.o被生成两次,因此被覆盖,导致链接器失败。

我曾考虑过用自己的.pro文件将每个嵌套文件夹制作成自己的SUBDIRS项目,但这并不正确,因为每个文件夹都不是独立的项目,只是一个独立的命名空间。

设置这样的项目的正确方法是什么?

以下是一个答案:https://riptutorial.com/qt/example/15975/preserving-source-directory-structure-in-a-build--undocumented---object-parallel-to-source--option--

这使得Qt在构建目录中生成一个目录结构;反射镜";源目录。

相关内容

  • 没有找到相关文章

最新更新