[英]boost.python “DLL load failed” on WinXP, VisualStudio 2005
我在WinXP-32上導入boost-python模塊時遇到問題。 我正在使用python 2.6.6,boost.python 1.41預編譯的libs由boostpro和VC ++ 8(VisualStudio 2005)。
在編譯下面的代碼之后,我嘗試從python命令行導入生成的pyHELLO.pyd,並始終得到:
“ImportError:DLL加載失敗:此應用程序無法啟動,因為應用程序配置不正確。重新安裝應用程序可能會解決此問題。”
我重新安裝了python並嘗試了其他的boost版本。 但它都沒有幫助。
我在嘗試導入模塊的目錄中有相應的boost dll。
在Win7下,相同的代碼適用於VC ++ 9。
這是代碼:
int sayHello() {
cout << "Hello !" << endl;
}
BOOST_PYTHON_MODULE(pyBoostTest)
{
def("sayHello", sayHello);
}
任何幫助高度贊賞。
解決:
我的機器上缺少boost.python dll所依賴的MSVC80CRT dll的正確版本。 我從MS下載了相應的redist包並安裝了它。 現在它有效。
dependencywalker沒有顯示此dll缺少依賴項。 在閱讀了清單和SxS之后,我發現清單中聲明了正確的dll版本,它本身嵌入了dll頭文件中。
如果在Visual Studio中打開dll,則可以閱讀該信息。 然后檢查c:\\ windows \\ winsxs文件夾中是否存在dll版本。 如果不是,您可以通過從MS下載相應的“redist”軟件包來檢索丟失的dll。 只需搜索dll版本。
感謝大衛對清單的暗示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.