error C3130: 內部編譯器錯誤: 未能將插入的代碼塊寫入PDB,c3130pdb

來源:互聯網
上載者:User

error C3130: 內部編譯器錯誤: 未能將插入的代碼塊寫入PDB,c3130pdb

        最近編譯cocos2d-x的test突然出現這個錯誤,重新編譯也無法解決。

        一般出現這個錯誤是兩個原因:一個是磁碟空間不足,另一個是項目太大導致pdb檔案太大,無法繼續寫入。

       原本cocos2d-x的test項目裡面的"調試資訊格式"是“C7相容(/z7)”,後來我習慣性的修改為/zI了。

       MSDN中說的是:

不產生任何調試資訊,因此編譯較快。

/Z7

產生包含用於調試器的完整符號調試資訊的 .obj 檔案。 符號化調試資訊包含變數的名稱和類型以及函數和行號。 不產生任何 .pdb 檔案。

對於第三方庫的散發者,不產生 .pdb 檔案是一個優點。 但是,在連結階段和調試期間,用於先行編譯頭的 .obj 檔案是必需的。 如果 .pch 對象檔案中只有類型資訊(沒有代碼),則還必須使用 /Yl(為調試庫插入 PCH 引用) 進行編譯。

/Zi

產生一個程式資料庫(PDB),其中包含供調試器使用的類型資訊和符號化調試資訊。 符號化調試資訊包含變數的名稱和類型以及函數和行號。

/Zi 不影響最佳化。 但是,/Zi 的確暗示了 /debug;有關更多資訊,請參見 /DEBUG(產生調試資訊)。

類型資訊放置在 .pdb 檔案而不是 .obj 檔案中。

可以將 /Gm(啟用最小重建) 和 /Zi 結合使用,但使用 /Z7 編譯時間不能使用 /Gm

使用 /Zi 和 /clr 編譯時間,DebuggableAttribute 特性將不會放置到組件中繼資料中;如果要使用該特性,則必須在原始碼中指定它。 該特性可影響應用程式的運行時效能。 有關 Debuggable 特性如何影響效能以及如何減輕效能影響的更多資訊,請參見令映像更易於調試。

/ZI

採用支援“編輯並繼續”功能的格式產生程式資料庫(如上所述)。 如果想使用“編輯並繼續”調試,則必須使用此選項。 因為大多數最佳化與“編輯並繼續”不相容,所以使用 /ZI 會禁用代碼中的所有 #pragma optimize 語句。

/ZI 會導致在編譯中使用 /Gy(啟用函數級連結) 和 /FC(所診斷原始碼檔案的完整路徑)。

/ZI 與 /clr(通用語言執行平台編譯) 不相容。


可見/Zi與/ZI差別不大,就是最佳化和資訊完整度的差別,而/Z7則是把資訊放在obj而不是pdb中,這樣就不會發生pdb檔案太大無法寫入的問題了。



使用matlab rtw把simulink模型轉換為C代碼時出現錯誤,fatal error U1077

那你就不要使用matlab
 
c語言怎使用微軟的軟體編譯(過程)

DOS下面是沒有cl的,cl是Windows下命令列方式的編譯工具,IDE也是調用它編譯的。直接cl.exe /help就能看到協助,貼給你吧 VS2010的(2012的可以交叉編譯ARM架構的目標代碼)

  用於 80x86 的 Microsoft (R) 32 位 C/C++ 最佳化編譯器 16.00.40219.01 版
  著作權(C) Microsoft Corporation。著作權所有,並保留一切權利。

  C/C++ 編譯器選項

  -最佳化-

  /O1 最小化空間 /O2 最大化速度
  /Ob<n> 內聯擴充(預設 n=0) /Od 禁用最佳化(預設)
  /Og 啟用全域最佳化 /Oi[-] 啟用內建函式
  /Os 優選代碼空間 /Ot 優選代碼速度
  /Ox 最大化最佳化 /Oy[-] 啟用幀指標省略

  -代碼產生-

  /GF 啟用唯讀字串池 /Gm[-] 啟用最小重建
  /Gy[-] 分隔連結器函數 /GS[-] 啟用安全檢查
  /GR[-] 啟用 C++ RTTI /GX[-] 啟用 C++ EH (與 /EHsc 相同)
  /EHs 啟用 C++ EH (沒有 SEH 異常) /EHa 啟用 C++ EH (w/ SEH 異常)
  /EHc 外部“C”預設為 nothrow
  /fp:<except[-]|fast|precise|strict> 選擇浮點模式:
  except[-] - 在產生代碼時考慮浮點異常
  fast -“fast”浮點模式;結果可預測性比較低
  precise -“precise”浮點模式;結果可預測
  strict -“strict” 浮點模式(意味著 /fp:except)
  即使使用 /fp:except,/Qfast_transcendentals 也產生內聯內部 FP
  /GL[-] 啟用連結時代碼產生 /GA 為 Windows 應用程式進行最佳化
  /Ge 對所有函數強制堆棧檢查 /Gs[num] 控制堆棧檢查調用
  /Gh 啟用 _penter 函數調用 /GH 啟用 _pexit 函數調用
  /GT 產生纖程安全 TLS 訪問 /RTC1 啟用快速檢查(/RTCsu)
  /RTCc 轉換為較小的類型檢查 /RTCs 堆疊框架運行時檢查
  /RTCu 未初始化的局部用法檢查
  /clr[:option] 為通用語言執行平台編譯,其中 option 是:
  pure - 產生只包含 IL 的輸出檔案(沒有本機可執行代碼)
 ......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.