cmake qt5_generate_repc() 将 rep 标头放在 CMAKE_CURRENT_BINARY_DIR 中

问题描述

我正在尝试确定构建项目的正确方法。由于要求,我使用 cmake 而不是 qmake。在我的 Qt 项目中,我使用了远程对象

问题是 qt5_generate_repc.rep 文件生成我的标头并将其放置在 CMAKE_CURRENT_BINARY_DIR 中并使其可访问,我需要 target_include_directories 我的构建目录,我不确定这是否是个好主意。

也许有更好的方法,或者我不了解一些基础知识?

解决方法

问题是 qt5_generate_repc 从 .rep 文件生成我的标头将它放在 CMAKE_CURRENT_BINARY_DIR 并使其可访问包含我需要 target_include_directories 我的构建目录,我不确定这是个好主意。

这是完全正常和公认的做法,对于构建时生成的源,确实是最好的做法。你应该这样做。

原因很简单,你不应该在树外构建中写入源目录,这是使用 CMake(树外)的幸运方式。

总体效果是防止一类可能发生的名称冲突和覆盖问题。