Visual C++ 的 fatal error C1001

來源:互聯網
上載者:User

如果你是一位老資格的 Visual C++ 使用者,那一定會對 Visual C++ 的 fatal error C1001 不會陌生。如果你在用 VC6 編一個規模較大的工程,如果你在用 VC6 編譯一個用到了模板的工程,那恭喜你,這個錯誤會時不時冒地出來和你打招呼,搞得你手足無措。

詳細的出錯資訊如下:
  fatal error C1001: INTERNAL COMPILER ERROR
          (compiler file 'msc1.cpp', line 1794)
           Please choose the Technical Support command on the Visual C++
           Help menu, or open the Technical Support help file for more information Error executing cl.exe.

網上已經有其他人寫的解決方案了,不過貌似都很麻煩,而且還有副作用(例如有一種是要求把先行編譯頭選項關閉,那會導致整個工程的編譯如同老牛拉車)。而官方的針對此問題的描述在這裡:http://support.microsoft.com/?scid=kb%3Ben-us%3B305980&x=14&y=12
,不過,按照微軟一貫的風格,按照它的指導去解決問題,可能需要具有無比的運氣。

經過老漢本人多次驗證,在 VC6 中可以用如下方法解決:在出錯資訊中找到出錯時正在編譯的那個 cpp 檔案的名字,把它記下來;在 FileView 視窗中的 source files 下建立一個子檔案夾,把剛才記住的 cpp 檔案移動到這個檔案夾中;然後再次編譯。(順便說一下,這其實是改變了工程中 cpp 檔案的編譯順序)可以很負責任的說,老漢自己驗證的成功率在 99% 以上。

這個技術本來是專門針對於 VC6 的,因為從 VS2003 開始,老漢幾乎再也沒有遇到過這個問題,所以也就一直沒有共用出來。可惜曆史總是會重演,剛才一個在玩兒 VS2005 的兄弟竟然在摸死你上和我說編譯器報以下錯誤:
fatal error C1001: 編譯器中發生內部錯誤。(他的是中文版,英文版的錯誤資訊似乎應該是:fatal error C1001: An internal error has occurred in the compiler.)
老漢一眼就看出了這絕對是前述問題借屍還魂了,所以把秘籍告訴了他,一次搞定!唯一需要注意的就是,VS2005 裡,FileView 已經變成了 Solution Explorer(中文是“解決方案管理器”),而 New Folder 功能表項目也變成了“Add->New Filter”(中文可能是“添加->新篩選器”)。僅此而已。

祝遇到這個問題的兄弟好運,能搜到我的這篇文章。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.