vtable для.. ссылаемый от ошибки компиляции XCode

Если Ваш проект находится в каталоге IIS, можно все еще отредактировать код, просто зависит, если это было опубликовано или нет. Вы столкнетесь так с проблемами о Кассини по сравнению с IIS при отладке определенных основанных на разрешении сценариев, как kerberos и аутентификация NTLM, а также проблемы как сжатие сервера и т.д., В целом, Кассини все еще хорошо к dev с, но удостоверьтесь, что Вы делаете обширное тестирование при публикации к IIS.

17
задан Community 29 July 2019 в 04:12
поделиться

3 ответа

Проблема заключалась в том, что в классе MultiFormatUPCEANReader я объявил конструктор и деструктор, но не написал тело деструктора, это вызывало эту неприятную проблему. Надеюсь, это поможет кому-нибудь решить их ошибку компиляции. Это ужасная ошибка компилятора с небольшим количеством информации!

40
ответ дан 30 November 2019 в 10:10
поделиться

Обычно это проблема отсутствия vtable: C ++ FAQ Lite 23.10 .

Из Интернет-архива:

Если вы получаете сообщение об ошибке в форме «Ошибка: обнаружены неразрешенные или неопределенные символы: виртуальная таблица для класса Fred», возможно, у вас есть неопределенная виртуальная функция-член в классе Fred.

Компилятор обычно создает волшебную структуру данных, называемую «виртуальная таблица» для классов, которые имеют виртуальную функции (так он обрабатывает динамическое связывание). Обычно вам вообще не нужно об этом знать. Но если вы забудете определить виртуальную функцию для класса Fred, вы иногда будете получать эту ошибку компоновщика.

Вот мелочь: многие компиляторы помещают эту волшебную «виртуальную таблицу» в модуле компиляции, который определяет первую не встроенную виртуальную функцию в классе. Таким образом, если первая не встроенная виртуальная функция в Fred - это wilma (), компилятор поместит виртуальную таблицу Fred в ту же единицу компиляции, где он видит Fred :: wilma (). К сожалению, если вы случайно забудете определить Fred :: wilma (), вместо того, чтобы получить значение Fred :: wilma () is undefined, вы можете получить сообщение «Виртуальная таблица Фреда не определена». Печально, но факт.

13
ответ дан 30 November 2019 в 10:10
поделиться

Та же самая ошибка может возникнуть, когда забываешь поставить имя класса перед определением метода в cpp-файле - как я только что это сделал. И это не xcode, я использую cmake для сборки и gcc в качестве компилятора (как это обычно делает xcode).

4
ответ дан 30 November 2019 в 10:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: