我正在構建一個應用程序並使用x264庫作爲編碼器。我使用MSys/MingW爲我的Windows系統建立了庫。該庫在調試版本下正常工作(注意調試和發佈版本都使用默認的VS2010設置)。然而,在釋放訪問衝突錯誤是在第一次調用的x264庫拋出,特別是:Visual Studio 2010中的libx264 - 發佈版本中的內存錯誤
Unhandled exception at 0x00905a4d in StreamTest.exe:
0xC0000005: Access violation.
錯誤是在這行拋出:
x264_param_default_preset((params), "veryfast", "zerolatency");
當我搞清楚如何編譯庫我在Windows/Visual Studios中遇到了很多關於內存對齊的話題,以及它如何與x264預期的對齊方式不兼容。例如,當在MSys中編譯時,我必須啓用--enable-memalign-hack。我想知道這個錯誤的來源是否可能源於內存對齊問題,這個問題只能通過發佈版本中的某些設置來體現。不幸的是,我對這些細節幾乎一無所知,所以來到這裏。
任何人都可以給我一些關於內存對齊問題和任何可能導致此問題的Visual Studio設置的信息?任何其他技巧/指針來解決這個問題是非常受歡迎的。
謝謝。
編輯
從下面的回答:
- 從鏈接SO問題,我得到他補充說:「建立與調試信息」,以OpenCV的建設的印象?由於我通過使用G ++的MSys構建x264庫,我不確定我能做到這一點。我已經檢查了我的項目的構建設置,並且在發佈和調試下都有調試器信息。不知道我是否錯過了那篇文章中的內容,請告訴我。
我試過應用驗證程序。看來,X264正試圖從非可執行內存按在App驗證輸出執行代碼:
VERIFIER STOP 0000000000000650: pid 0x1B18:
嘗試在非可執行內存(第一次機會)執行代碼。
0000000000905A4D : Address being accessed. 0000000000905A4D : Code performing invalid access. 000000000021EA90 : Exception record. Use .exr to display it. 000000000021E5A0 : Context record. Use .cxr to display it.
任何從這個輸出收集?
再次感謝。
感謝您的輸入,我已經將您的建議的結果添加到我的OP的編輯。請給出意見! – DeusAduro 2010-12-09 18:25:30