2012-09-22 2 views
2

내 프로젝트에서 모든 경고를 보려면 -Wall-Wextra을 활성화했지만 '라이브러리'도 사용하고 있습니다. (라이브러리의 소스 코드를 복사하여 폴더 libs에 붙여 넣었습니다. 내 프로젝트) 많은 경고를 팝업. 이 코드는 책 (OpenGL Super Bible 5)과 함께 제공되며 OpenGL을 배우기 위해이 책을 사용하고 있습니다. 그러나 나는이 코드에서 생성 된 모든 경고를보고 싶지 않으며 내 src 폴더의 경고 만보고 싶지 않습니다.특정 디렉토리에 대한 컴파일러 경고 제거

특정 폴더에서 오는 경고를 숨기는 방법이 있습니까?

나는 내 경고를 숨기려고하지 않고, 나는 자신의 경고를 고치는 데 집중할 수 있도록 작성자의 경고를 제거하려고합니다.

경고 내가 그 특정 경고 (-Wunused-parameter-Wreorder)를 사용하지 않으면 난 두려워

./libs/src/GLTools.cpp:123:6: warning: unused parameter ‘szArgv’ [-Wunused-parameter] 
In file included from ./libs/src/GLBatch.cpp:36:0: 
./libs/include/GLBatch.h: In constructor ‘GLBatch::GLBatch()’: 
./libs/include/GLBatch.h:123:16: warning: ‘GLBatch::nNumTextureUnits’ will be initialized after [-Wreorder] 
./libs/include/GLBatch.h:122:16: warning: ‘GLuint GLBatch::nNumVerts’ [-Wreorder] 
./libs/src/GLBatch.cpp:55:1: warning: when initialized here [-Wreorder] 
In file included from ./libs/src/GLBatch.cpp:36:0: 
./libs/include/GLBatch.h:131:17: warning: ‘GLBatch::pTexCoords’ will be initialized after [-Wreorder] 
./libs/include/GLBatch.h:115:11: warning: ‘GLuint GLBatch::uiVertexArray’ [-Wreorder] 
./libs/src/GLBatch.cpp:55:1: warning: when initialized here [-Wreorder] 
In file included from ./libs/src/GLBatch.cpp:36:0: 
./libs/include/GLBatch.h:125:14: warning: ‘GLBatch::bBatchDone’ will be initialized after [-Wreorder] 
./libs/include/GLBatch.h:121:16: warning: ‘GLuint GLBatch::nVertsBuilding’ [-Wreorder] 
./libs/src/GLBatch.cpp:55:1: warning: when initialized here [-Wreorder] 
In file included from ./libs/src/GLBatch.cpp:36:0: 
./libs/include/GLBatch.h:121:16: warning: ‘GLBatch::nVertsBuilding’ will be initialized after [-Wreorder] 
./libs/include/GLBatch.h:118:12: warning: ‘GLuint* GLBatch::uiTextureCoordArray’ [-Wreorder] 
./libs/src/GLBatch.cpp:55:1: warning: when initialized here [-Wreorder] 
./libs/src/GLShaderManager.cpp:481:8: warning: unused parameter ‘szVertexProg’ [-Wunused-parameter] 
./libs/src/GLShaderManager.cpp:481:8: warning: unused parameter ‘szFragProg’ [-Wunused-parameter] 

, 그들은 그것에 대해 이야기 할 수 있는데,이 경우에 내 자신의 코드에 발생할 수 있습니다. 저는 C++의 초보자이기 때문에 컴파일러가 오류를 식별 할 수 있도록 도와 주거나 제가 할 수있는 일을 나쁜 습관으로 생각하고 싶습니다.

+0

나는 잘 모른다. 경고가 뭐라고 말하면 좋을까요? –

+0

g ++를 사용하면 해당 디렉토리에 표준 헤더가 있음을 컴파일러에 알릴 수 있습니다. 나는 그 옵션을 기억하지 않습니다. 그것을 밖으로 체크 ' –

+0

나는 경고와 함께 업데이 트했습니다. – AntoineG

답변

2

소스 파일에서 이러한 파일의 포함은 경고가 발생하지 않습니다,하지만 난 그것을 이런 식으로 뭔가 보이는 가정 :

:

CC = gcc 
CFLAGS = -Wall -Otherflags 

MYOBJECTS = obj/foo.o obj/bar.o # from sources in src/ 
LIBOBJECTS = obj/baz.o obj/quartz.o # from sources in lib/ 
OBJECTS = $(MYOBJECTS) $(LIBOBJECTS) 

executable: $(OBJECTS) 
    ... 

obj/%.o: %.cc 
    $(CC) $(CFLAGS) $< -o [email protected] 

vpath %.cc src lib 

그렇다면, 단지 target-specific variable 추가를

CFLAGS = -Otherflags 

$(MYOBJECTS): CFLAGS += -Wall 
+0

내 메이크 파일이 너무 못생긴다. (나는이 일을하는 방법을 배우고있다.) 나는 그것을 감히 받아들이지 않았다. 그러나 그것은 당신이하는 일을 꽤 많이합니다. 나는 그것을 시험해보고 (그리고 동시에 나의 Makefile을 정리하려고 노력한다)! – AntoineG

-1

AntoineG - 경고는 이유가 있습니다. 코드를 수정하십시오.

+3

책 저자 코드를 수정해야한다는 의미입니까? 기술을 배우고 내 자신의 코드를 먼저 수정하고 싶습니다. – AntoineG

+0

@AntoineG - 책 저자 코드를 수정하면 기술을 익힐 수 있습니다. 그래도 책에 달렸어.

+0

@ 작은 이야기 - 작은 비밀 - 저자는 인간적이고 오류가 있습니다. –

2

-include 대신 라이브러리의 포함 파일이 들어있는 -isystem 옵션을 사용할 수 있습니다. 그러면 lib가 컴파일 될 때만 경고가 표시됩니다. 당신은 우리에게 당신의 메이크를 표시하지 않은