Отключите предупреждение gcc для несовместимых опций

Определите свой словарь любым удобным для вас способом, а затем попробуйте следующее:

from pprint import pprint

pprint(yourDict)

# for a short dictionary it returns:

{'foo': 'bar', 'foo2': 'bar2', 'foo3': 'bar3'}

# for a longer/nested:

{'a00': {'b00': 0,
         'b01': 1,
         'b02': 2,
         'b03': 3,
         'b04': 4,
         'b05': 5,
         'b06': 6,
         'b07': 7,
         'b08': 8,
         'b09': 9},
 'a01': 1,
 'a02': 2,
 'a03': 3,
 'a04': 4,
 'a05': 5,
 'a06': 6,
 'a07': 7,
 'a08': 8,
 'a09': 9,
 'a10': 10}

Вам нравится вывод?

5
задан Jonathan Leffler 4 June 2009 в 21:30
поделиться

5 ответов

Мне кажется, что если бы была такая опция, то должна была бы существовать дополнительная опция для отключения предупреждений об этой опции и так далее до бесконечности. Так что я подозреваю, что нет.

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

2
ответ дан 14 December 2019 в 08:59
поделиться

Чтобы включить определенные предупреждения в gcc -Wxxxx и отключить их с помощью -Wno-xxxx .

Из Параметры предупреждений GCC :

Вы можете запросить множество конкретных предупреждений с параметрами, начинающимися с -W ', например -Wimplicit для запроса предупреждений о неявных объявлениях. Каждый из этих вариантов предупреждения также имеет отрицательную форму, начинающуюся -Wno- ' отключить предупреждения; например, -Wno-implicit. В этом руководстве приведена только одна из двух форм, в зависимости от того, какая из них не используется по умолчанию.

Однако @Neil прав насчет разделения опций для разных языков. Если вы используете make, вы можете, например, поместить все параметры C в CFLAGS и все параметры C ++ в CCFLAGS.

3
ответ дан 14 December 2019 в 08:59
поделиться

Если вы можете компилировать файлы C как C ++, используйте -x c ++ .

0
ответ дан 14 December 2019 в 08:59
поделиться

Если вы установите переменную CFLAGS, она будет влиять только на файлы C, если вы установите переменную CXXFLAGS, она будет влиять только на файлы C ++, поэтому вы можете легко разделить логику.

2
ответ дан 14 December 2019 в 08:59
поделиться

Увы, gcc не имеет возможности включать или отключать отдельные предупреждения. Некоторые предупреждения имеют специальный регистр, и уровни предупреждений могут быть установлены, но нет способа отключить предупреждения, которые вам не нужны.

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

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

0
ответ дан 14 December 2019 в 08:59
поделиться