2017-04-25 78 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特性減少工作。 –