2017-04-25 33 views
0

既然是regression, introduced with the new Qt build system in 5.8 is resolved,那么在构建Qt时如何指定外部依赖关系呢?构建具有外部依赖关系的Qt后5.8构建回归

我们是否回到了5.8中删除的旧(坏)语法?或者有没有新的方法来做到这一点?

+1

你所说的 “指定外部依赖” 的意思是。这对任何人都有意义......请提供具体的例子,说明你的意思。 –

+0

我的意思是为sql,ssl和whatnot等东西提供库。查看错误和相关问题。 – dtech

+0

不知道我得到你。这些选项在5.8中被**删除**这不是“工作不正常”的问题,而是“没有指定第三方库的选项”的问题。再次 - 随意发布一个包含配置字符串的答案,该配置字符串可以成功指定要在qt版本中使用的第三方库。 – dtech

回答

0

configure -help

Each uppercased library name (obtainable with -list-libraries) supports the suffixes _INCDIR , _LIBDIR , _PREFIX (INCDIR=PREFIX/include, LIBDIR=PREFIX/lib) , _LIBS , and - on Windows and Darwin - _LIBS_DEBUG and _LIBS_RELEASE . E.g., ICU_PREFIX=/opt/icu42 ICU_LIBS="-licui18n -licuuc -licudata" .

这样:

  1. configure -list-libraries获得配置库列表。
  2. 对于每个FOO从上面,提供:

    • FOO_PREFIX两者FOO_LIBDIRFOO_INCDIR
    • FOO_LIBS如果不为空,
    • 任选FOO_LIBS_DEBUGFOO_LIBS_RELEASE如果有在两者之间的差变体(如果FOO_LIBS为空,则不可选)。

例如,设置MySQL,假设configure -list-libraries包括MYSQL:

configure \ 
    MYSQL_INCDIR=E:\msys64\mingw64\include\mariadb \ 
    MYSQL_LIBDIR=E:\msys64\mingw64\lib \ 
    MYSQL_LIBS="-l mysqlclient" 
+0

在这里真的很具体,先前的ot 5.8通过'-LE:\ msys64 \ mingw64 \ lib -qt-sql-psql -qt-sql-mysql -l mysqlclient -IE:\ msys64 \ mingw64 \ include \ mariadb'进行配置。 ,那么我们如何将它转化为“新的和改进的构建系统”呢? – dtech

+0

我会给最新的开发分支。但我希望这些事情有更好的记录和更直接。我的意思是说,并不是每个使用Qt的开发人员都会围绕它进行实况转换,并且还会遇到很多怪癖。它应该真的那么尴尬吗?我的意思是,如果我们从一个“统一的方式来包含任何lib”转变为“特定的方式来包含一个特殊的奇偶然支持它已经实现,那么”改进的构建系统“实际上是一个巨大的退步“ – dtech

+0

他们都应该实施。新的构建系统不会退步。它的发布有点过早,但它最终统一了Windows和非Windows配置,允许您在自己的项目中利用配置测试,最终使Qt特性减少工作。 –