簡體   English   中英

在Visual Studio C ++中編譯時出現錯誤2,代碼退出MSB6006“ CL.exe”

[英]Error MSB6006 “CL.exe” exited with code 2 in compile in visual studio c++

我在c ++控制台項目上工作。 該項目在msmpisdk平台中具有。 當我在Visual Studio 2019中編譯時,發生以下錯誤:

“嚴重性代碼描述項目文件行抑制狀態...錯誤MSB6006” CL.exe“退出,代碼為2。...C:\\ Program Files(x86)\\ Microsoft VisualStudio \\ 2019 \\ Enterprise \\ MSBuild \\ Microsoft \\ VC \\ v160 -\\ Microsoft.CppCommon.targets429。”

我檢查了我的代碼,看來還可以,還檢查了項目的ref lib,看來還可以。

我在網上搜索。

  1. 所有函數都返回一個值。
  2. 所有變量在使用前都會設置一個值。
  3. 我重新啟動了Visual Studio和我的計算機。
  4. 我創建了新項目並添加了代碼,但是發生了相同的錯誤。

但發生相同的錯誤,我的代碼無法編譯。

最后我發現了問題。

  • 我的變量之一,已在算法中初始化。
  • 但是編譯器無法檢測到之前初始化的變量並引發錯誤。
  • 請參閱下面的代碼,以查看此錯誤的產生方式。

 #include "iostream" class myclass1 { public: int _AMethod() { return 55; } }; int main() { myclass1* myVariable; int x = 0; if (x == 0) { myVariable = (myclass1*)malloc(sizeof(myclass1) * 5); //myVariable = init(); } if (x == 0) { myVariable->_AMethod(); } } 

現在在編譯時發生此錯誤:錯誤MSB6006“ CL.exe”退出,代碼2。

  • 算法中的所有內容都可以。
  • 但是編譯器會引發錯誤..

通過定義init可以輕松解決此錯誤,如下所示:

 #include "iostream" class myclass1 { public: int _AMethod() { return 55; } }; int main() { myclass1* myVariable=(myclass1*)malloc(sizeof(myclass1) * 5); int x = 0; if (x == 0) { //myVariable = (myclass1*)malloc(sizeof(myclass1) * 5); //myVariable = init(); } if (x == 0) { myVariable->_AMethod(); } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM