подавить метод экземпляра

У меня есть библиотека, которая начала выдавать пару предупреждений компоновщика под XCode 4.4. Предупреждения соответствуют строчкам «ld: warning: instance method» methodName: & apos; в категории из метода переопределений из класса в & quot;

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

 Hexark03 сент. 2012 г., 14:06
Вы создали / назвали метод в своем классе, так же, как другой метод в другом классе?
 ima74706 авг. 2012 г., 19:53
Я думаю, это означает, что люди, которые сделали библиотеку ненадлежащим образом, подклассировали некоторые вещи. Кажется, что-то не нарушает, но компоновщик немного ржавеет, что раздражает, так как я не могу это исправить, потому что это закрытый источник.
 trojanfoe06 авг. 2012 г., 15:56
Что означает предупреждение?
 ima74703 сент. 2012 г., 15:11
Они не мои уроки. Он находится в готовой библиотеке.

Ответы на вопрос(2)

Решение Вопроса

которые я предложил, добавив флаги в «Другие флаги компоновщика». в области настроек сборки Xcode:

1) Добавление-Xlinker -w будет подавлятьall предупреждения компоновщика, независимо от типа (это-w пометить в ld (1)). Очевидно, что это успокоит это конкретное предупреждение, но также и все остальные предупреждения.

2) Добавление-Xlinker -no_objc_category_merging пропустит шаг оптимизации, где компоновщик объединяет все методы категории в базовый класс во время компоновки, что затем происходит во время выполнения. Крошечный чуть медленнее при запуске, вероятно, но, вероятно, он все равно будет быстрее, чем метод, свистящий во время выполнения, и, поскольку именно на этом этапе ld (1) выдает предупреждение, он также пропустит это.

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

 15 окт. 2014 г., 12:13
поблагодарить. Ты спас мой день

оно будет находиться под:

Project Navigator(the file list on the left )-> [Project name](the one with the blue icon) -> Build Settings -> Apple LLVM compiler 3.1 - Warnings

Также:

В Xcode, как подавить все предупреждения в определенных исходных файлах?

 16 июн. 2013 г., 03:54
Другое решение, опять же для компилятора, а не компоновщика, это диагностические прагмы:clang.llvm.org/docs/…
 16 июн. 2013 г., 03:54
Это плохой совет. Я полагаю, что есть много предупреждений лязг, которые не имеют флажки в пользовательском интерфейсе настройки сборки. В общем постановка конкретной-W опция в файле исправит эту проблему во время компиляции. Установить-fdiagnostics-show-option вариант файла и Clang скажет вам, какой-W использовать. В этом конкретном случае это не сработает, потому что вопрос OP касаетсяlinker, а не компилятор.
 04 нояб. 2015 г., 02:18
Если у вас есть проблемы с новым xCode 7, предоставляющим вам весь «, эта функция переопределяет член, но не объявляет переопределение». speil; Вы можете добавить флаг -Wno-inconsistent-отсутствующий-override в «флаги других предупреждений» в тех же настройках сборки проекта, упомянутых выше
 ima74704 сент. 2012 г., 14:45
Спасибо за это. В разделах компилятора нет предупреждений, относящихся к библиотекам или конкретным предупреждениям, которые я вижу. Я мог бы отключить все предупреждения, но именно это я и стараюсь избегать. Другой упомянутый пост также предназначен для файлов, которые будут скомпилированы, но библиотеки и заголовки там не отображаются, поэтому нет возможности специально установить для них флаги. Я должен предположить, что нет никакого способа отключить предупреждение в xcode, так как оно из библиотеки.

Ваш ответ на вопрос