在此設置下我曾經遇到過一個Windows安全警告
您沒有簽署二進制文件。這個問題與Qt無關。即使分發一個簡單的「Hello World」,你也會面對它。
確保您簽署以下的所有:
的可執行文件。
您重新分配和未簽名的所有DLL(驗證每個DLL)。
安裝程序。
我的編譯器有沒有關於如何優化編譯我的用戶的主意。
由於C++沒有使用即時編譯,所以這種說法是不言而喻的。當你動態地鏈接你的編譯器時,如果你暗示你需要特定於CPU的變體代碼,也將「不知道」如何編譯「最適合你的用戶」。這必須通過多個可執行文件解決,每個可執行文件都針對特定的CPU進行編譯,並在安裝時進行選擇。不過,我不認爲你的意思。但是,我不知道你的意思是「爲我的用戶進行最佳編譯」。
我是否需要提供我的GUI
的靜態編譯可執行程序,它是給你的。如果您沒有提供靜態編譯的可執行文件,則需要提供所有的依賴項:編譯器的C++運行時,以及Qt所需的所有庫和插件。
在Windows,Linux和OS X上生成靜態鏈接可執行文件的過程是相同的。你從一個靜態配置的Qt副本開始(configure -static -static-runtime
),然後構建它,然後用它來構建你的應用程序。最終產品將與C++運行時和Qt庫靜態鏈接。
我需要提供的靜態編譯可執行[...]安裝
只有當你使用的是C++編譯器自己編譯安裝程序。大多數安裝程序生成程序包負責創建沒有附加依賴項的安裝程序,即可以在裸露的Windows系統上運行它。
我能避免在我的身邊,預編譯一起由
Qt提供了再利用無預建的安裝使用安裝程序從Qt的
。
您可以使用例如NSIS部署編譯器運行時,Qt庫和插件,以及您的應用程序和它需要的任何數據文件。
或者您可以靜態編譯您的應用程序,使其沒有依賴關係,並且是一個.exe文件,並將其作爲便攜式應用程序使用。它也可以自行安裝,即可以將安裝程序捆綁在應用程序中,啓動時應用程序可以檢測它是否已安裝,如果沒有安裝,它會以管理模式重新啓動並執行安裝。
您是否閱讀過文檔http://doc.qt.io/qt-5/deployment.html? – sithereal