C/C++ Compiler and build tools errors and warnings

The articles in this section of the documentation explain diagnostic error and warning messages that are generated by the Microsoft C/C++ compiler and build tools.

Important

The Visual Studio compilers and build tools can report many kinds of errors and warnings. After an error or warning is found, the build tools may make assumptions about code intent and attempt to continue, so that more issues can be reported at the same time. If the tools make the wrong assumption, later errors or warnings may not apply to your project. When you correct issues in your project, always start with the first error or warning that's reported, and rebuild often. One fix may make many subsequent errors go away.

To get help on a particular diagnostic message in Visual Studio, select it in the Output window and press the F1 key. Visual Studio opens the documentation page for that error, if one exists. You can also use the search tool at the top of the page to find articles about specific errors or warnings. Or, browse the list of errors and warnings by tool and type in the table of contents on this page.

Note

Not every Visual Studio error or warning is documented. In many cases, the diagnostic message provides all of the information that's available. If you landed on this page when you used F1 and you think the error or warning message needs additional explanation, let us know. You can use the feedback buttons on this page to raise a documentation issue on GitHub. If you think the error or warning is wrong, or you've found another problem with the toolset, report a product issue on the Developer Community site. You can also send feedback and enter bugs within the IDE. In Visual Studio, go to the menu bar and choose Help > Send Feedback > Report a Problem, or submit a suggestion by using Help > Send Feedback > Send a Suggestion.

You may find additional assistance for errors and warnings in Microsoft Learn Q&A forums. Or, search for the error or warning number on the Visual Studio C++ Developer Community site. You can also search Stack Overflow to find solutions.

For links to additional help and community resources, see Visual C++ Help and Community.

In this section

BSCMAKE errors and warnings (BKxxxx)
Errors and warnings generated by the Microsoft Browse Information Maintenance Utility (BSCMAKE.EXE).

Command-line errors and warnings
Errors and warnings generated by the build tools for command-line options issues.

Compiler fatal errors C999 - C1999
Errors that halt the C++ compiler (CL.EXE).

Compiler errors C2001 - C3999
Errors detected by the C++ compiler (CL.EXE).

Compiler warnings C4000 - C5999
Warnings for issues detected by the C++ compiler (CL.EXE).

Compiler warnings by compiler version
A list of the warnings introduced by each compiler version.

C Runtime errors (Rxxxx)
Errors generated at runtime by the C Runtime Library (CRT).

CVTRES errors and warnings (CVTxxxx)
Errors and warnings generated by the Microsoft Resource File To COFF Object Conversion Utility (CVTRES.EXE).

Expression evaluator errors (CXXxxxx)
Errors generated by the debugger and diagnostics tools.

Linker tools errors and warnings (LNKxxxx)
Errors and warnings generated by the linker and related tools (LINK.EXE, LIB.EXE, DUMPBIN.EXE, EDITBIN.EXE).

Math errors (Mxxxx)
Errors generated by the runtime floating-point math library.

NMAKE errors and warnings (Uxxxx)
Errors and warnings generated by the Microsoft makefile tool (NMAKE.EXE).

Profile-Guided Optimization errors and warnings (PGxxxx)
Errors and warnings generated by the Profile-Guided Optimization (PGO) tools.

Project build errors and warnings (PRJxxxx)
Errors and warnings generated by the native C++ Project build system in Visual Studio.

Resource compiler errors and warnings (RCxxxx, RWxxxx)
Errors and warnings generated by the Resource Compiler (RC.EXE).

Vectorizer and parallelizer messages
Diagnostic messages generated by the vectorizer and parallelizer optimization compiler options.

Compiler warnings that are off by default

See also

C/C++ Building Reference
Debugging in Visual Studio