2012-06-17 25 views
3

我試圖部署在Mac OSX Qt應用程序,所以我在運行此命令部署Qt的應用程序:缺少文件時,在Mac OSX

macdeployqt Example.app 

它主要似乎工作的可執行文件的大小增長所以我假設正在添加相關的插件和庫。然而,到底macdeployqt輸出此錯誤消息:

ERROR: no file at "/usr/local/pgsql/lib/libpq.5.dylib" 

有誰知道這個文件是什麼?我需要安裝一些東西才能使它工作嗎?

+0

「'liqpq'」是PostgreSQL庫。你是否把它包含在你的項目中?如果是這樣,我認爲你需要將它複製到你的內置應用程序的包中。 –

+1

@MichaelDautermann,這很奇怪,我實際上並沒有在我的項目中使用PostgreSQL,只是SQlite。有什麼辦法可以消除這種依賴關係嗎? –

回答

4

文檔states如果應用程序使用QtSql模塊,則會部署SQL驅動程序插件。 macdeployqt工具不知道您的應用程序使用哪些插件,並嘗試部署所有這些插件。您的應用程序不直接與任何插件鏈接,因此無法僅通過查看可執行文件來告訴它的用途。 macdeployqt工具需要解析應用程序的代碼,或者使用潛在的可破壞啓發式掃描sql驅動程序名稱字符串。這是macdeployqt工具的一個缺點。

臨時解決方法是將未使用的插件移出QtSdk中的plugins/sqldrivers文件夾。

注意:Example.app不是可執行文件。它是一個應用程序包 - 一個包含東西的文件夾,您可以通過以下方式檢查其內容:從shell或通過Finder右鍵單擊應用程序包。

+0

我自己並沒有編譯Qt,我只是安裝了Qt網站上提供的那個。令我驚訝的是,macdeployqt試圖將這個庫添加到軟件包中,但該應用程序在沒有它的情況下工作得很好。 –

+0

非常感謝信息和文檔參考。我會嘗試從插件目錄中刪除驅動程序,看它是否有效。 –