Qt Creator 中应该如何管理多个项目?

glu*_*utz 5 qt qmake projects-and-solutions visual-studio

我有一个依赖于多个静态库的 exe,在 Visual Studio 中,它们都作为 1 个 sln 文件的一部分进行管理,并且该 exe 依赖于静态库。

如何在 Qt Creator 中进行设置?似乎有 2 个选项:1. 在 Qt Creator“会话”中创建多个项目。但是会话不会在用户之间共享,对吗?所以我不确定这会如何工作?例如,是否有创建的会话文件?2.使用子项目。并制作exe的静态lib sub projs?

有什么建议吗?我对 Qt Creator 完全陌生,需要将它用于 linux 端口。

谢谢!

rub*_*nvb 3

qmake生成一个好的.sln子项目,请.pro使用模板创建一个主文件subdirs,并设置每个项目对另一个项目的必要依赖关系。

qmakeQtCreator在幕后使用生成 makefile 并从中构建,但您也可以通过运行来生成 VS 解决方案文件

qmake ../path/to/source -tp vc
Run Code Online (Sandbox Code Playgroud)

您还可以使用 Qt Visual Studio 插件来 GUI 化该过程。


另外:为了确保每次更改依赖静态库时重新链接可执行文件,请使用

CONFIG( debug, debug|release ) {
    LIBSUFFIX = d
    win32:LIBS += -L../staticlib1/debug
    win32:PRE_TARGETDEPS += ../staticlib1/debug/libAmbrosiad.a
} else {
    LIBSUFFIX =
    win32:LIBS += -L../staticlib1/release
    win32:PRE_TARGETDEPS += ../staticlib1/release/libAmbrosia.a
}
unix:LIBS += -L ../libAmbrosia
unix:PRE_TARGETDEPS += ../libAmbrosia/libAmbrosia$${LIBSUFFIX}.a
Run Code Online (Sandbox Code Playgroud)

将类似的内容放入可执行.pro文件中,注意 LIBSUFFIX 部分是完全可选的,但与 Qt 本身的构建方式一致,所以这也是我使用的。请注意 Linux/Mac 版本中缺少的“release”和“debug”子目录。完整地说:相当详细的if-else条件是The Right Way (TM)为了区分debugqmakerelease项目文件中的构建。在某些情况下,更简单的方法可能会失败。