Я включил -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 ++, поэтому я хотел бы получить всю помощь, которую компилятор может дать мне, чтобы идентифицировать мои ошибки или вещи, которые я мог бы сделать, что является плохой практикой.
Вы не показали нам свой 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
вы можете использовать -isystem
вариант вместо -include
для пути, который содержит включаемые файлы вашей библиотеки. Тогда вы, вероятно, увидите предупреждения только тогда, когда lib скомпилирована сама. включение этих файлов в ваши исходные файлы не вызовет предупреждений
AntoineG — предупреждения по причине. Исправьте код.