gpt4 book ai didi

c++ - 使用 cmake 和 QT 组织多个项目

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:06 24 4
gpt4 key购买 nike

cmake 比我所希望的还要简单。目前我问自己的是,如何创建一个(或多个)CMakeLists.txt 文件,使以下项目结构有效:

my workspace
src
project1
project2
build
project1
project2

更具体地说,我有以下两个约束,它们应该决定我的项目结构和我的 CMakeLists.txt 文件:

1) 我使用 git 并且只想提交 CMakeLists.txt 和我的源文件,build should only by generated for each particular user who would like to work on this project by an IDE他的愿望

2) 如果有人克隆了我的存储库,他将能够运行 cmake 来构建上述目录(/my workspace/build/project1/my workspace/build/project2) 他/她想要的IDE,这样他就可以在这个项目上工作

3) src 目录应该是干净的,这样任何在该项目上工作的人都可以使用他/她想要的 IDE 来执行此操作,更改 src 文件和可能的 CMakeLists.txt 然后提交他/她所做的事情,以便其他人可以再次 checkout 并以相同的方式使用它

以这种方式进行协作的巨大优势!但是,cmake 似乎将所有内容构建到调用 cmake 的目录中。

现在,对于问题:

a) 为了用相应的构建创建我想要的目录,除了从新构建的 /my workspace/build/project1 调用 cmake 之外,还有其他方法吗和 /my workspace/build/project2 文件夹?

b) 您更喜欢使用不同的目录结构进行协作吗?

c) 如果 b) 是,你把你的 CMakeLists.txt 文件放在哪里,你从哪里调用 cmake 以及一般情况是什么构建过程?

d) QT 创建的 moc 文件似乎工作正常。您是否以任何方式提交它们,或者只是将它们放入构建目录中供每个 checkout 的人使用,并确保它们可以使用?

最佳答案

构建目录不是您可以决定的。其他开发人员将选择放置构建目录的位置(我有一个带有 eclipse 的“外部”设置:https://stackoverflow.com/a/38140914/4742108)。构建目录未提交到存储库中。

CMakeLists.txt 是针对每个项目的。您有两个项目,因此从 CMake 的角度来看,它们不应该有任何关联。此外,您应该决定是否有必要将它们提交到同一个存储库。

moc 文件没有在任何地方提交。它们对于每个构建都是本地的,就像 *.o 文件或编译器生成的任何中间内容一样。

关于c++ - 使用 cmake 和 QT 组织多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38291984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com