3

我正在开发一个依赖于其他一些库(特别是 SFML 和 Box2D 以及其他一些库)的项目。我喜欢在警告的情况下运行,但我所依赖的项目并不那么严格。

有没有办法可以使用默认警告设置编译库并使用我想要的警告标志编译我的代码?我的 CMakeLists.txt 中有以下标志列表。注释掉的行是我现在无法打开的东西,因为它们破坏了我的依赖关系。

set(CUSTOM_CFLAGS ${CUSTON_CFLAGS}
    -std=c++0x 
    #-ansi 
    -pedantic
    -Werror 
    -Wall 
    -Wextra 
    #-Weffc++
    -Wshadow 
    -Winit-self 
    -Wsign-promo 
    -Wcast-align
    #-Wlogical-op 
    -Woverloaded-virtual 
    -Wno-unused-parameter 
    #-Wstrict-null-sentinel 
    -Wmissing-include-dirs 
    -Wframe-larger-than=8192 
    #-Wmissing-format-attribute
    -g 
    #Would like this but Box2D hsa a ridiculous amount of it...
    #-Wfloat-equal -Wno-error=float-equal
   )
4

1 回答 1

1

是的,您可以编译一次外部库。然后,您可以将它们包含并链接到您的项目中,而无需重新编译外部内容。唯一剩下的要重新编译的外部代码在库头文件中。写类似

#pragma warning(push)
#pragma warning(disable:2892,2893,2894,4096)
#include <external_header.h>
#pragma warning(pop)

为了禁用在外部头文件中弹出的警告。这种编译指示的东西因编译器而异,但大多数编译器都有这些方面的东西。

于 2012-08-16T16:53:41.280 回答