Как игнорировать предупреждения С помощью GCJ

StackOverflow https://stackoverflow.com/questions/2057783

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня есть несколько классов, которые реализуют интерфейсы, некоторые из которых имеют методы, параметры которых по определению не используются в конкретной реализации класса.например ,Интерфейс "Shape" может определять метод "contains (point)", но мой конкретный класс определяет строку, которая ничего не может содержать, поскольку она одномерная, поэтому она всегда возвращает false и никогда не использует point .

Однако, когда я компилирую с помощью GCJ, на меня обрушиваются сотни "предупреждений:параметр x не используется" сообщения.

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

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

Решение 2

Хотя я не нашел возможности сделать это напрямую с помощью gcj, одним из обходных путей является передача выходных данных в grep и поиск шаблона "ошибка:", а затем отображение только этой строки и нескольких окружающих строк.

например ,javac *.java 2>&1 | grep -B 3 -A 2 "ошибка:"

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

Мне удалось отключить все предупреждения, влияющие на мой исходный код, используя:

gcj -Wno-all -Wno-unchecked -Wno-raw *.java

Возможно, вы захотите добавить еще -Wno-... флаги для отключения дополнительных предупреждений.Чтобы выяснить возможные флаги, я изучил тело методов org.eclipse.jdt.internal.compiler.batch.Main.handleWarningToken и org.eclipse.jdt.internal.compiler.batch.Main.handleErrorOrWarningToken в пакетном компиляторе Eclipse ecjsrc-3.5.2.zip и ecjsrc-3.8.zip.

Укажите все эти флаги, чтобы отключить все предупреждения:

-Wno-all
-Wno-allDeadCode
-Wno-allDeprecation
-Wno-allJavadoc
-Wno-allOver-ann
-Wno-all-static-method
-Wno-assertIdentifier
-Wno-boxing
-Wno-charConcat
-Wno-compareIdentical
-Wno-conditionAssign
-Wno-constructorName
-Wno-deadCode
-Wno-dep-ann
-Wno-deprecation
-Wno-discouraged
-Wno-emptyBlock
-Wno-enumIdentifier
-Wno-enumSwitch
-Wno-enumSwitchPedantic
-Wno-fallthrough
-Wno-fieldHiding
-Wno-finalBound
-Wno-finally
-Wno-forbidden
-Wno-hashCode
-Wno-hiding
-Wno-includeAssertNull
-Wno-incomplete-switch
-Wno-indirectStatic
-Wno-interfaceNonInherited
-Wno-intfAnnotation
-Wno-intfNonInherited
-Wno-intfRedundant
-Wno-javadoc
-Wno-localHiding
-Wno-maskedCatchBlock
-Wno-maskedCatchBlocks
-Wno-nls
-Wno-noEffectAssign
-Wno-noImplicitStringConversion
-Wno-null
-Wno-nullDereference
-Wno-over-ann
-Wno-over-sync
-Wno-packageDefaultMethod
-Wno-paramAssign
-Wno-pkgDefaultMethod
-Wno-raw
-Wno-redundantSuperinterface
-Wno-resource
-Wno-semicolon
-Wno-serial
-Wno-specialParamHiding
-Wno-static-access
-Wno-static-method
-Wno-staticReceiver
-Wno-super
-Wno-suppress
-Wno-switchDefault
-Wno-syncOverride
-Wno-synthetic-access
-Wno-syntheticAccess
-Wno-typeHiding
-Wno-unavoidableGenericProblems
-Wno-unchecked
-Wno-unnecessaryElse
-Wno-unqualifiedField
-Wno-unqualified-field-access
-Wno-unsafe
-Wno-unused
-Wno-unusedAllocation
-Wno-unusedArgument
-Wno-unusedArguments
-Wno-unusedImport
-Wno-unusedImports
-Wno-unusedLabel
-Wno-unusedLocal
-Wno-unusedLocals
-Wno-unusedPrivate
-Wno-unusedThrown
-Wno-unusedTypeArgs
-Wno-uselessTypeCheck
-Wno-varargsCast
-Wno-warningToken
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top