Qt - Visual Studio - Работа с проектами на нескольких компьютерах - PullRequest
2 голосов
/ 21 июля 2011

Я работаю с одними и теми же проектами Visual Studio на нескольких компьютерах (рабочий / домашний), используя Dropbox для синхронизации между ними. Поскольку VS создает несколько очень больших файлов, я использовал для удаления следующее перед загрузкой в ​​Dropbox:

  • Файлы = .pdb, sdf, .ilk .exe .tmp
  • Папки = ipch /, Release /, Debug /, GeneratedFiles /

В прошлом все работало нормально, однако некоторые проблемы сейчас возникли. Я получаю следующие ошибки:

Moc'ing CodeInterface.h...
1>  The system cannot find the path specified.
1>  Moc'ing ThreadWorker.h...
1>  The system cannot find the path specified.
1>  Rcc'ing StreamAnalyser.qrc...
1>  The system cannot find the path specified.
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code 3. 

Итак, я думаю, что мне, возможно, придется создать новый проект Visual Studio и импортировать классы вручную. Итак, мой вопрос:

  • Рекомендации по работе с проектами на разных компьютерах?
  • Какие файлы можно удалить (для загрузки в Dropbox)?
  • Есть ли в Visual Studio какие-то «глобальные настройки» (или что-то похожее на «рабочее пространство», используемое в Eclipse)? Как настроить эти параметры для предотвращения проблем при работе на разных компьютерах?

Спасибо!

Ответы [ 5 ]

3 голосов
/ 21 июля 2011

"moc" - это исполняемый файл Qt, который предварительно обрабатывает .h файлы. Он вызывается системой сборки MSVS. Однако, если он будет отсутствовать, вы получите «Система не может найти указанный путь». ошибка после "Moc'ing CodeInterface.h".

Поэтому я ставлю на то, что MSVS не может найти вашу реализацию Qt. Я не совсем удивлен; система сборки Qt4 и ее интеграция с MSVS не показались мне очень надежной и надежной, когда я пытался установить ее недавно.

3 голосов
/ 21 июля 2011

Я не знаком с Dropbox, поэтому я не могу говорить о том, что вы делаете в настоящее время

Что мне нравится делать, это использовать распределенную систему управления версиями (я использую git), чтобы следить за источникомтолько кодЯ использую файл .gitignore, чтобы не создавать версии для какого-либо объектного кода и файлов проекта Visual Studio и т.п.Затем я могу легко клонировать эти проекты (с их версиями) на любой компьютер, который мне нравится - включая тестовые ветки, с которыми я мог бы бездельничать, возвращаясь домой на поезде на своем ноутбуке.

В моем опыте проекта Visual Studioфайлы - это боль, потому что разные версии не очень хорошо играют друг с другом (у одного компьютера vs2005, а у другого - vs2008).Чтобы преодолеть эту проблему, мне нравится использовать cmake в качестве моей системы сборки (я включаю их и в мой git-репозиторий).Cmake - это «система мета-сборки», в которой она генерирует для вас файлы Visual Studio, Eclipse или AutoTools, а затем вы делаете собственную сборку в VS или Eclipse или с помощью make.

Использованиеэти два пакета вместе означают, что вы можете скопировать должным образом версионный контролируемый исходный код между любыми компьютерами (включая linux, mac и windows) и затем создать исходный код на этом компьютере, используя любую IDE, установленную на этом компьютере.

1 голос
/ 21 июля 2011

В вашем случае вы можете удалять файлы, но не каталоги, то есть GeneratedFiles\Debug и \Release должны остаться.Если вы посмотрите на ваши h-файлы, они выполняют перенос и использование в качестве пользовательского шага сборки, и в этих событиях нет кода проверки пути.

"$(QTDIR)\bin\moc.exe"   -DQT_NO_QT_INCLUDE_WARN -DUNICODE -DWIN32 -DQT_THREAD_SUPPORT -DQT_CORE_LIB -DQT_NETWORK_LIB -DJSBRIDGEAPI_LIB -D_WINDLL  -I".\GeneratedFiles\." -I"$(QTDIR)\include\." -I".\GeneratedFiles\$(ConfigurationName)\." -I".\." -I"$(QTDIR)\include\QtCore\." -I"$(QTDIR)\include\QtNetwork\." -I"$(QTDIR)\include\QtWebKit\." ".\apisignalemitter.h" -o ".\GeneratedFiles\$(ConfigurationName)\moc_apisignalemitter.cpp"

Итак, добавление директорий .\GeneratedFiles\$(ConfigurationName)\ можетрешить вашу проблему.Также проверьте, определен ли $ (QTDIR).

UPD - убедитесь, что QT установлен на обе машины в каком-то месте

1 голос
/ 21 июля 2011

Я рекомендую вам использовать svn с anksvn . Subversion создан для управления работой на разных компьютерах и имеет дополнительный бонус контроля версий.

0 голосов
/ 23 июля 2011

Я обычно использую SVN для контроля версий и файл qmake pro для настроек проекта.Вы можете использовать qmake для создания файла проекта Visual Studio из файла pro и работы с Visual Studio или создания Makefiles и других файлов проекта в Windows, Linux и Mac, так что это довольно переносимое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...