2014-04-24 135 views
0

我在我的應用程序中加載的dll中創建了我的OpenCL代碼。 現在對於我的64位應用程序來說,它正在爲調用getPlatformIds()而崩潰。 但是Dependency Walker顯示一切都是64位,沒有錯誤。 但與32位相同的應用程序正在完美工作。 我的GPU可能無法執行64位任務嗎? 但C:/Windows/System32/OpenCL.dll也是64位,所以可能我的硬件沒問題?32位GPU和64位CPU OpenCL?

如何確定可能導致崩潰的原因?

+1

它是如何崩潰?是否有拋出的異常,或從OpenCL函數返回的錯誤代碼?在我們提供幫助之前,我們需要了解這些信息。 – wjl

+0

它是一個分段錯誤,所以我沒有收到任何錯誤代碼。 –

+0

你的GPU'點點滴滴'與此無關。出於某種原因,您可能會調用32位代碼或您正在使用的OpenCL實現簡單地被破壞。 – sharpneli

回答

0

Husshhhh .... 問題最終被解決... :)

看起來有一些連接問題MinGW的64位編譯器。 解決方案是鏈接libopencl.a文件而不是OpenCL.dll用於構建64位應用程序。

雖然爲32位應用程序構建不需要這個,即可以鏈接OpenCL.dll。

現在只有當有人可以修復this issue which has been open for past 4 years