2010-06-02 207 views
2

我試圖在我的Vista64服務器上對我的32位xp開發盒進行生產測試來構建我的應用程序的64位版本(並且是的,我確實需要內存)。鏈接錯誤在32位XP機器上構建64位Qt應用程序

以前,我在64位模式下構建了沒有任何錯誤的Qt 4.6.2 DLL。這一步變化順利。

爲了開始建設生產,我試圖在64位模式下重建Qt的Star代理演示。我通過更改應用程序配置並將庫調整爲64位版本,將32位應用程序轉換爲64位應用程序。現在,當我去鏈接時,我鏈接時出現以下錯誤:

1>------ Build started: Project: stardelegate, Configuration: Release x64 ------ 
1>Linking... 
1>MSVCRT.lib(crtexew.obj) : error LNK2001: unresolved external symbol WinMain 
1>release64\stardelegate.exe : fatal error LNK1120: 1 unresolved externals 

建議?

編輯 - 經過一些更多的搜索,發現如果我作爲控制檯應用程序鏈接它將工作和運行。但不是一個Windows應用程序。我在32位模式下沒有這個問題。

+1

您是否使用'WinMain','_tWinMain'或其他作爲您的主要功能?另外,你可以發佈鏈接器設置的入口點嗎?謝謝。 – Troubadour 2010-06-02 17:20:29

+0

我使用標準的「int main()」和默認入口點。然而,你的評論讓我總體思考「主」。我將我的項目設置與工作的項目設置進行了比較,發現我忽略了包含WinMain函數的Qtmain。它現在正在工作。謝謝,希望我可以檢查你的評論作爲答案。 – 2010-06-02 17:38:02

+0

嘿,沒問題。 – Troubadour 2010-06-02 17:50:18

回答

2

qt application 64 bit windows

編輯:沒關係,你發現它。如果您不使用CMake或qmake,則需要鏈接到qtmainhttp://doc.qt.io/archives/4.6/modules.html

你不需要接受這個,因爲我沒有找到它,但只是讓未來的人看到答案,不會感到困惑。

+0

感謝您的聯繫,但是,這是我們沒有的一個問題。我們的問題僅與連接64位應用程序有關,因爲我們已經在64位模式下構建了qt庫。 – 2010-06-02 17:52:58

+0

@photo_tom:你的鏈接器路徑是什麼樣的?正如在那個鏈接(並希望是顯而易見的)中所述,如果您最終鏈接到64位版本的32位庫,它將會失敗。確保32位庫不會出現在鏈接路徑中的64位庫之前。 – 2010-06-02 18:20:47

+0

w - 在提出問題之前,您提出了有關我檢查過的鏈接路徑的有效點。在混合的32/64位本地代碼應用程序世界中工作絕對是您必須在您的構建中進行組織的地方。絕對是我必須努力的事情。我的問題原來是,我不知道我需要在構建中包含Qtmain.lib。 – 2010-06-03 02:48:37

相關問題