Удалить предупреждение компилятора для определенного каталога

Я включил -Wall а также -Wextra чтобы увидеть все предупреждения в моем проекте, но я также использую «библиотеку» (я копирую / вставляю исходный код библиотеки в папку libs моего проекта), который выскакивает много предупреждений. Код поставляется с книгой (OpenGL Super Bible 5), и я использую его для изучения OpenGL. Однако я не хочу видеть все предупреждения, генерируемые этим кодом, только предупреждения в моем src папка.

Есть ли способ скрыть предупреждения, приходящие из определенной папки?

Я не пытаюсь скрыть МОИ предупреждения, я просто хочу удалить предупреждение автора, чтобы сосредоточиться на исправлении своих предупреждений.

Предупреждения

./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]

Боюсь, если я отключу эти конкретные предупреждения ( -Wunused-parameter а также -Wreorder ), они могут произойти в моем собственном коде, и в этом случае мне скажут об этом. Я новичок в C ++, поэтому я хотел бы получить всю помощь, которую компилятор может дать мне, чтобы идентифицировать мои ошибки или вещи, которые я мог бы сделать, что является плохой практикой.

2

Решение

Вы не показали нам свой make-файл, но я думаю, он выглядит примерно так:

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 $@

vpath %.cc src lib

Если это так, просто добавьте целевая переменная:

CFLAGS = -Otherflags

$(MYOBJECTS): CFLAGS += -Wall
2

Другие решения

вы можете использовать -isystem вариант вместо -include для пути, который содержит включаемые файлы вашей библиотеки. Тогда вы, вероятно, увидите предупреждения только тогда, когда lib скомпилирована сама. включение этих файлов в ваши исходные файлы не вызовет предупреждений

2

AntoineG — предупреждения по причине. Исправьте код.

-1
По вопросам рекламы [email protected]