I generally like to compile against warning level 4 in Visual Studio and treat all warnings as errors. The problem is, Ogre3D is not compiled with warning level 3 (neither is FBX SDK or OIS, which I am also using), and that poses a problem because now I have a ton of warnings from Ogre3D libraries that are now treated as errors. So far I have been compiling at level 3, but that makes me very uneasy. Is there any way to disable warnings for specific 3rd party libraries over which I have no control?
相关问题
- Sorting 3 numbers without branching [closed]
- How to compile C++ code in GDB?
- Why does const allow implicit conversion of refere
- thread_local variables initialization
- What uses more memory in c++? An 2 ints or 2 funct
相关文章
- Class layout in C++: Why are members sometimes ord
- How to mock methods return object with deleted cop
- How to add external file to application files ( cl
- Suppress “Circular dependency detected” suppress w
- Which is the best way to multiply a large and spar
- C++ default constructor does not initialize pointe
- Selecting only the first few characters in a strin
- What exactly do pointers store? (C++)
You don't say exactly how you are compiling, but here are some options:
1 - Inside Visual Studio, you can set the warning level for individual source files via the Properties for each source file
2 - You can also change the the warning level dynamically within a file using
which sets the warning level to 3 between the two pragmas.
It may be that if you disable the most well-known MSVC sillywarnings, the problem will at least become managable.
My sillywarnings suppression header is available at my blog; it's enough to compile code using
<windows.h>
at warning level 4 with MSVC, with no warnings.Other than that, you can go to the extreme measure of employing a "compiler firewall", which means putting all direct usage of the 3rd party library within an implementation file or set of such files. Then you can compile those files at low warning level. But I don't think it's worth it.
Cheers & hth.,
You can wrap the 3rd party .h files into your own file and in there disable locally the offending warnings as you might not want to disable all warnings but only specific ones.
For gcc here is how this can be done
http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html
http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas