• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 132  文章 - 51  trackbacks - 0
            <2011年1月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(7)

            隨筆分類(lèi)

            隨筆檔案

            文章分類(lèi)

            文章檔案

            cocos2d-x

            OGRE

            OPenGL

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

               今天編譯完CEGUI后運(yùn)行時(shí)提示我缺少M(fèi)SVCP80D.DLL,搜了下找到了解決方案 備忘.


               在VS 2005中建立Win32工程時(shí)(以VS 2005中文版為例),你可能會(huì)遇到這樣的運(yùn)行錯(cuò)誤:“沒(méi)有找到MSVCP80D.dll,因此這個(gè)應(yīng)用程序未能啟動(dòng)。重新安裝應(yīng)用程序可能會(huì)修復(fù)此問(wèn)題。”(還可能是其它幾個(gè)類(lèi)似的文件:MSVCR80D.dll、MSVCM80D.dll)。對(duì)于VS2005新手,可能遇到的第一個(gè)問(wèn)題便是此問(wèn)題。
            一直使用VC6進(jìn)行開(kāi)發(fā)測(cè)試,最近準(zhǔn)備把平臺(tái)轉(zhuǎn)移到VS2005(過(guò)些天就應(yīng)該轉(zhuǎn)VS2008了,呵呵)上來(lái)。于是,決定先把CppUnit轉(zhuǎn)移到此平臺(tái)上來(lái)。在VS2005中編譯CppUnit所遇到的問(wèn)題不多,雖然沒(méi)VC6方便。但是在測(cè)試編譯好的CppUnit庫(kù)時(shí)卻遇到了困難:把以前在VC6中寫(xiě)的AES移植過(guò)來(lái)(其使用了CppUnit進(jìn)行單元測(cè)試),在運(yùn)行時(shí)卻遇到了如上錯(cuò)誤。剛開(kāi)始以為可能是CppUnit沒(méi)有編譯好,重新編譯CppUnit多次,調(diào)整編譯參數(shù),但始終有此錯(cuò)誤,并且此錯(cuò)誤有時(shí)出現(xiàn)有時(shí)不出現(xiàn),這更暈了,大量時(shí)間就這樣浪費(fèi)了。等我靜下來(lái),才覺(jué)得可能是VS 2005的原因,于是上網(wǎng)搜索此錯(cuò)誤信息,終于找到了問(wèn)題所在。

            VS 2005在生成可執(zhí)行文件時(shí)使用了一種新的技術(shù),該技術(shù)生成的可執(zhí)行文件會(huì)伴隨生成一個(gè)清單文件(manifest
            file)(.manifest后綴文件)(其本質(zhì)上是XML文檔,你可以用文本編輯器打開(kāi)看看),并在鏈接完成后將該清單文件嵌入到exe文件中(默認(rèn)情況下)。而在FAT32文件系統(tǒng)中,在處理清單文件階段,當(dāng)增量鏈接時(shí)不能完成清單文件的更新(默認(rèn)情況下),于是造成清單文件嵌入失敗,從而使該exe文件運(yùn)行時(shí)沒(méi)有相應(yīng)的清單文件而運(yùn)行失敗并提示如上錯(cuò)誤。

            解決方案很多,列舉如下:
            1. 由于這是在鏈接動(dòng)態(tài)運(yùn)行庫(kù)出現(xiàn)的問(wèn)題,所以你可以選擇代碼生成的連接方式為/MTd而非/MDd,不用這些DLL文件從而避免問(wèn)題的出現(xiàn)。該方法有一個(gè)很顯然的缺點(diǎn):適用范圍有限,并且也不是我等提倡的解決問(wèn)題的方式,不推薦該方法。

            2. 既然跟FAT32系統(tǒng)有關(guān),那么我們可以選擇在NTFS文件系統(tǒng)中開(kāi)發(fā)從而避免該問(wèn)題,此方法同上,也是采用的回避問(wèn)題的方式,不為我等提倡。

            3. 該方法仍與FAT32有關(guān):在項(xiàng)目的“屬性|配置屬性|清單工具|常規(guī)”中的“使用FAT32解決辦法”選擇“是”(默認(rèn)為“否”),重新生成項(xiàng)目即可解決問(wèn)題。該方法是唯一真正針對(duì)問(wèn)題所在而提出的解決方法,使清單工具可以正確更新。(此方法是官方解決方法,也比較方便,推薦)

            4. 既然問(wèn)題是在更新嵌入的清單文件時(shí)發(fā)生的,由于FAT32的原因而未能更新嵌入的清單文件,于是我們有如下兩種解決方法:
            (1)不啟用增量鏈接。在項(xiàng)目的“屬性|配置屬性|鏈接器|常規(guī)”中的“啟用增量鏈接”選擇“否”。此方法阻斷了問(wèn)題產(chǎn)生的源頭,其每次生成exe文件時(shí)都直接嵌入清單文件,而不是默認(rèn)的根據(jù)時(shí)戳而決定是否更新清單文件。
            (2)不嵌入清單文件。在項(xiàng)目的“屬性|配置屬性|清單工具|輸入和輸出”中的“嵌入清單”選擇“否”,從而在生成exe文件時(shí)附隨生成一個(gè)清單文件(默認(rèn)情況下,其文件名為exe文件的全名加上“.manifest”),避免了嵌入清單文件可能失敗的問(wèn)題。在程序運(yùn)行時(shí),會(huì)用到該清單文件。顯然,這種方式使可執(zhí)行程序產(chǎn)生了更多的外部依賴,不推薦。

            另外,還有一個(gè)不能稱為方法的土辦法:每次Build前手動(dòng)刪除*.ilk文件(增量鏈接文件)(當(dāng)然可以在項(xiàng)目屬性中寫(xiě)入刪除命令,使其自動(dòng)執(zhí)行),不推薦該土辦法。

            最后,總結(jié)一下:
            1. 此問(wèn)題只在特定條件下才會(huì)出現(xiàn):在FAT32文件系統(tǒng)中編譯、默認(rèn)設(shè)置(增量模式、不啟用FAT32解決方案、嵌入清單文件)、非第一次生成可執(zhí)行文件文件(即在增量連接、更新清單文件時(shí))。
            2. 解決方案1和4.1方便實(shí)用,推薦使用。


               今天編譯程序的時(shí)候,總是提示LINK : fatal error LNK1000: Internal error during IncrBuildImage

            后在網(wǎng)上找到達(dá)人的解釋說(shuō),可以下載補(bǔ)丁解決(覺(jué)得不靠譜),或者只要“修改鏈接選項(xiàng),方法:項(xiàng)目-屬性-鏈接器-常規(guī) 下面的“啟用增量鏈接”,將“是(/INCREMENTAL)”改為“否(/INCREMENTAL:NO)”,然后確定就可以了解決了”,試了下,果然可以。

                  可是我還是不知道增量是什么東東,又搜了下,在愛(ài)問(wèn)上找到了答案:

                  現(xiàn)在的VS2003,2005,2009有增量編譯功能,就是如果你的代碼改動(dòng)了,他們是不完全重新編譯整個(gè)代碼的,而是只編譯你所更改的部分。    出現(xiàn)這個(gè)提示, 
                 1.你是第一次進(jìn)行編譯,這時(shí)當(dāng)然沒(méi)有生成過(guò)可執(zhí)行文件,也就無(wú)法增量鏈接了。 
                 2.你上一次編譯的時(shí)候有錯(cuò)誤,沒(méi)有生成可執(zhí)行文件。

            posted on 2011-01-28 13:41 風(fēng)輕云淡 閱讀(415) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 日常問(wèn)題
            亚洲国产精品无码久久久秋霞2 | 精品久久久久中文字| 久久精品国产免费观看| 久久国产成人| 久久e热在这里只有国产中文精品99 | 99久久无码一区人妻| 久久精品国产精品国产精品污| 婷婷五月深深久久精品| 久久丫精品国产亚洲av不卡 | 久久最新免费视频| 色婷婷狠狠久久综合五月| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 伊人久久五月天| 国产色综合久久无码有码| 伊人久久综合成人网| 久久久久久国产精品免费无码 | 亚州日韩精品专区久久久| 亚洲精品视频久久久| 久久精品国产亚洲AV不卡| 久久男人Av资源网站无码软件| 久久精品国产第一区二区三区| 久久香蕉综合色一综合色88| 伊人丁香狠狠色综合久久| 久久久久人妻精品一区三寸蜜桃| 亚洲欧美成人久久综合中文网| 亚洲中文字幕久久精品无码APP | 久久综合亚洲色一区二区三区| 亚洲国产精品无码久久| 一本久久久久久久| 久久精品无码一区二区WWW| 久久国产免费观看精品| 四虎国产精品成人免费久久| 婷婷五月深深久久精品| 精品久久久久中文字幕一区| 久久人人爽人人爽人人AV| 精品久久久久久99人妻| 亚洲国产精品无码久久一区二区 | 亚洲国产精久久久久久久| 国内精品九九久久精品| 久久嫩草影院免费看夜色| 国产精品久久久久…|