Вопрос

Я участвую в программном проекте, написанном в QT, и построен с Qmake и GCC на Linux. Мы должны связаться с сторонней библиотекой, которая имеет довольно низкое качество и извергает тонны предупреждений. Я хотел бы использовать -W -Wall в нашем исходном коде, но перенесите -W в грязную стороннюю библиотеку, чтобы сохранить консоль свободными от шума и беспорядка, чтобы мы могли сосредоточиться на качеством нашего кода.

В Qmake есть ли способ условно добавить CFLAGS/CXXFLAGS в определенные файлы и библиотеки?

Это было полезно?

Решение

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

Кевин, я думаю, что вы можете использовать прагмы для контроля предупреждений: GCC Диагностические прагмы

Вы можете добавить их до и после любых #includes для сторонних либеров.

Другие советы

Что если вы включите свою библиотеку, используя -исистему.

В файле проекта например:

QMAKE_CXXFLAGS += -isystem /usr/local/boost_1_44_0

Кевин,

qmake CONFIG+=debug QMAKE_CXXFLAGS_WARN_ON=-w QMAKE_CFLAGS_WARN_ON=-w

должен сделать (используйте config+= выпуск, если хотите ...)

Обычно вы создаете стороннюю библиотеку в отдельном каталоге из своего собственного кода, так что у вас будет другой файл Makefil, чтобы вы могли поставить другой набор флагов для этого компиляции.

Если вы смешали сторонний библиотечный код со своим собственным кодом, вы настроили себя на кошмар для обслуживания.

Как написал Мартин, добавив каталог включения через

QMAKE_CXXFLAGS += -isystem ...

подавляет предупреждения только в соответствующих заголовках. Нет необходимости отключать предупреждения для каких-либо исходных файлов вашего проекта (или даже по всему проекту) или возиться с файлами #Pragmas или обертка.

Обратите внимание, что если вы используете qtcreator, вы все равно (т.е. дополнительно) захотите добавить каталог в INCLUDEPATH Таким образом, индексатор поднимает заголовки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top