У меня есть существующий проект, который я компилирую как в Windows, используя Visual C ++ 2008, так и в Debian Linux. В этом проекте используется стандарт Visual C ++ .vcproj
файл, а некоторые .cpp
а также .h
файлы. Это не зависит от каких-либо конкретных вещей для Windows. Просто C ++.
Он компилируется и хорошо работает на Linux, используя самодельный инструмент это читает .vcproj
файл для генерации Makefile
который используется с make
скомпилировать и связать все файлы, используя g++
,
Проблема в том, что в Visual C ++ 2010 (и 2012) формат файлов проекта изменился. Даже имя было изменено с .vcproj
в .vcxproj
, мой самодельный инструмент не может прочитать этот новый файл проекта для генерации Makefile
,
Вместо обновления самодельный инструмент чтобы поддержать новые файлы проекта, мне было интересно, если xbuild
будет в состоянии скомпилировать мой исполняемый файл Linux?
Сначала я попытался скомпилировать свой собственный проект (VC ++ 2008), но xbuild
жалуется что мой проект is a VS2003 project, which is not supported by xbuild.
Однако, прибегая к помощи по этому вопросу, я обнаружил, что xbuild
должен поддерживать файлы проекта VS2005. Есть также некоторые ссылки на mdtool
чтобы поддержать эти старые файлы проекта, но я, кажется, интегрирован в xbuild
сейчас.
Кроме того, я попытался скомпилировать пример Visual C ++ 2010 (HuoChess), полученный с сайта MSDN. Результат
/Microsoft.Cpp.Default.props: Project file could not be imported, it was being
imported by [...] /HuoChessConsole/HuoChessConsole.vcxproj: Imported project:
"//Microsoft.Cpp.Default.props" does not exist.`
Теперь, похоже, файл проекта хочет Microsoft определения правила для Cpp
компилятор. Должен ли я подделать эти определения, чтобы использовать gcc
вместо? Как я могу это сделать?
Это то, что я хочу сделать когда-либо возможно с xbuild
?
Нет причин заново изобретать колесо — просто используйте gyp.
«GYP может генерировать ваши проекты» или makefiles.
http://code.google.com/p/gyp/
Есть проект GCCBuild который вы можете использовать для сборки проектов vcxproj в Linux. Он просто использует тот же vcxproj, но использует GCC для компиляции и сборки. Там также есть несколько примеров.
PS. Я автор этого проекта.