Making GCC and Other C++ Compilers Very Strict

后端 未结 7 751
深忆病人
深忆病人 2021-02-01 06:45

I\'m working on a large collaborative C++ project that is both developed and run on various flavors of Linux, OS X and Windows. We compile across these platforms with GCC, Visua

7条回答
  •  死守一世寂寞
    2021-02-01 07:37

    I wrote the blog post on this topic after researching several options. You also need to handle the cases where you are using other libraries but they are not following strict compilation. Fortunately there is easy way to handle them as well. I have been using this extensively in all my projects.

    In short, use following compiler options to turn on very strict mode (below is what I put in CMakeLists.txt):

    set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wextra  -Wstrict-aliasing -pedantic -fmax-errors=5 -Werror -Wunreachable-code -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef -Wno-unused -Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option ${CMAKE_CXX_FLAGS}")
    

    You can read more about how to turn on and off this strict mode for specific portions of code here: http://shitalshah.com/p/how-to-enable-and-use-gcc-strict-mode-compilation/

提交回复
热议问题