close

這幾天發現再戰十年的WinXP執行OpenCV2.4.7應用程式時發生一個錯誤訊息

InitializeCriticalSectionEx 找不到程式入口點, 在kernel32.dll發生錯誤…

嘗試1. 於是便循著kernel32.dll關鍵字去找, 下載dll結果徒勞無功

嘗試2. 以為是win7下編譯的程式在winxp會有問題, 於是VMware搞一個winxp作業環境來試試,

又花了很多時間安裝Qt5.1 + OpenCV2.4.7, 可以編譯出執行檔案, 但是還是failed, 出現一模一樣的錯誤訊息 @@

嘗試3. Google大神提到這個很有可能是visual studio 2012的bug, 需要更新service pack即可解決, 但我是vs2010啊!!

嘗試4. 最後終於發現原來是OpenCV2.4.7 dll 如果是自己編譯選項中有WITH tbb 3.0版(需退回2.0版)就會有這樣的錯誤訊息 OMG!!!

資料來源: opencv_createsamples.exe entry point problem with XP

ps. 看到發問者用Dependency walker去追查問題點, 筆記中!!!

教學: 使用 Dependency Walker 工具,檢查程式與 DLL 的相依性

sourceforge提供的dll

image

自己編譯的版本(包含TBB.DLL)

image

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 me1237guy 的頭像
    me1237guy

    天天向上

    me1237guy 發表在 痞客邦 留言(0) 人氣()