Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Smogg от Июль 11, 2013, 22:03



Название: Вопрос про Visual studio и отваливающиеся moc_ файлы.
Отправлено: 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)

(http://img38.imageshack.us/img38/9678/2dcc.jpg) (http://imageshack.us/photo/my-images/38/2dcc.jpg/)

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

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

Расскажите пожалуйста, что означают эти минусики справа-слева на иконке и подскажите, отчего такая фигня с блуждающим "unresolved external symbol "public: virtual struct QMetaObject" может случится?


Название: Re: Вопрос про Visual studio и отваливающиеся moc_ файлы.
Отправлено: Bepec от Июль 11, 2013, 22:44
У тебя что-то где то не встало видимо. Это нормальное состояние moc файлов в студии.


Название: Re: Вопрос про Visual studio и отваливающиеся moc_ файлы.
Отправлено: Smogg от Июль 11, 2013, 23:00
Ага, этточно, "что-то" и "где-то"...
Прежние проекты, совсем простые, даже кода для вывода хелловорлда
нету, компиляются нормально. Сейчас в новых проектах файлы с минимальными правками помечаются этой фигней.

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

Кстати, минусик справа - это "exclude from Build".
Минусик слева - поиск по картинке не дал ничего.


Название: Re: Вопрос про Visual studio и отваливающиеся moc_ файлы.
Отправлено: Bepec от Июль 11, 2013, 23:11
Минусик на самом файле - выключен из текущей сборки. Т.е. если выбрана дебажная сборка, все релизные моки будут вот так выключены. И наоборот.

А слева по моему малому разумению - автогенерируемый файл.


Название: Re: Вопрос про Visual studio и отваливающиеся moc_ файлы.
Отправлено: kambala от Июль 11, 2013, 23:33
убедись, что в свойствах файлов с «минусиком» выставлено exclude from build: Yes. должно быть как сказал Верес:
если выбрана дебажная сборка, все релизные моки будут вот так выключены. И наоборот.


Название: Re: Вопрос про Visual studio и отваливающиеся moc_ файлы.
Отправлено: Bepec от Июль 11, 2013, 23:39
И да, может такое быть если вы собираете несколько проектов / один проект в разных сборках в один каталог. Там тупо не обновляются моки или же накладываются.

В общем смотрите, пытайтесь.