Russian Qt Forum
Ноябрь 25, 2024, 08:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос про Visual studio и отваливающиеся moc_ файлы.  (Прочитано 2871 раз)
Smogg
Гость
« : Июль 11, 2013, 22:03 »

Регулярно вылазит такая ошибка:
cwHot.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CWHot::metaObject(void)const " (?metaObject@CWHot@@UBEPBUQMetaObject@@XZ)



ошибка пропадает, если исключить-добавить те moc_XXXX.cpp файлы, у которых на иконке есть красный минусик справа.

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

Расскажите пожалуйста, что означают эти минусики справа-слева на иконке и подскажите, отчего такая фигня с блуждающим "unresolved external symbol "public: virtual struct QMetaObject" может случится?
« Последнее редактирование: Июль 11, 2013, 22:38 от Smogg » Записан
Bepec
Гость
« Ответ #1 : Июль 11, 2013, 22:44 »

У тебя что-то где то не встало видимо. Это нормальное состояние moc файлов в студии.
Записан
Smogg
Гость
« Ответ #2 : Июль 11, 2013, 23:00 »

Ага, этточно, "что-то" и "где-то"...
Прежние проекты, совсем простые, даже кода для вывода хелловорлда
нету, компиляются нормально. Сейчас в новых проектах файлы с минимальными правками помечаются этой фигней.

Видать, когда совсем замучит, придется идти брутальным путем - удалять Студию с Кьютом, чистить реестр и опять инсталлировать несколько гигабайт.

Кстати, минусик справа - это "exclude from Build".
Минусик слева - поиск по картинке не дал ничего.
Записан
Bepec
Гость
« Ответ #3 : Июль 11, 2013, 23:11 »

Минусик на самом файле - выключен из текущей сборки. Т.е. если выбрана дебажная сборка, все релизные моки будут вот так выключены. И наоборот.

А слева по моему малому разумению - автогенерируемый файл.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Июль 11, 2013, 23:33 »

убедись, что в свойствах файлов с «минусиком» выставлено exclude from build: Yes. должно быть как сказал Верес:
если выбрана дебажная сборка, все релизные моки будут вот так выключены. И наоборот.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #5 : Июль 11, 2013, 23:39 »

И да, может такое быть если вы собираете несколько проектов / один проект в разных сборках в один каталог. Там тупо не обновляются моки или же накладываются.

В общем смотрите, пытайтесь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.153 секунд. Запросов: 23.