2013-09-22 140 views
6

我剛從Qt a開始。我已經下載了Windows 32位版本(666mB),沒有別的。我做了一個簡單的計算器應用程序。 當我從Qt創建者運行它時運行該應用程序,但構建的exe顯示dll缺失。 我不想使用依賴walker.I想創建一個靜態構建(我讀過它,但我無法讓它運行)使用Qt製作靜態構建(獨立應用程序)

我的目標是使一個功能齊全的計算器(沒有安裝程序),而不必手動添加依賴關係。 我已閱讀關於配置靜態,但我不知道如何使用它。 在此先感謝您的幫助。

+1

看到這個問題:http://stackoverflow.com/questions/1458252/static-build-in-qt-on-windows-vista?rq=1。它解釋瞭如何靜態構建Qt。請注意,Qt的靜態版本適用於非商業應用程序。 –

+0

我不明白。 你能否給我一個更詳細的教程? –

+0

另請參見[如何構建Qt 5靜態?](http://stackoverflow.com/q/15340688/341970) – Ali

回答

8

您需要從源代碼自己構建Qt。你肯定會想保持Qt的兩個版本。對於調試,您應該使用共享構建,因爲這有合理的鏈接時間。對於發行版,您應該使用靜態構建,絕對使用鏈接時間代碼生成來縮小可執行文件的大小,並期望構建一個簡單的應用程序的時間爲一分鐘。這是因爲「鏈接」確實爲Qt和您的應用程序生成了機器代碼,並且代碼是特定於您的應用程序的,因此通常會使性能更好。

你這樣做,而不浪費磁盤空間來源的多個副本是通過使用源外的Qt構建。到目前爲止,靜態Qt 5.1.1版本已經被破壞,所以下面的版本只適用於Qt 4,使用Visual Studio。

  1. 將源碼下載到例如C:\Qt\4.8.5

  2. 創建C:\Qt\4.8.5-shared。在那裏打開視覺工作室控制檯CD,然後用其他任何選項運行C:\Qt\4.8.5\configure.exe -shared。然後使用nmakejom來構建它。

  3. 創建C:\Qt\4.8.5-static。在那裏打開視覺工作室控制檯,CD,然後用其他任何選項運行C:\Qt\4.8.5\configure.exe -static -ltcg。然後使用nmakejom來構建它。

您將需要link the plugins statically to your release build of the application

Qt Creator可以輕鬆並行地使用多個Qt版本。我經常使用Qt 4和Qt 5進行構建,包括靜態和共享,本地修復Qt 5以使靜態構建生效。

+0

你能否澄清靜態Qt 5.1.1構建破壞的方式?你知道它是否固定在5.2?我也有興趣知道你做了什麼本地修復,以使靜態構建工作。 +1的答案。 – JBentley

+1

@JBentley看到[這個答案](http://stackoverflow.com/a/21862990/1329652)。 –

相關問題