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 端口。
谢谢!
要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项目文件中的构建。在某些情况下,更简单的方法可能会失败。
| 归档时间: |
|
| 查看次数: |
4866 次 |
| 最近记录: |