Visual Studio порта C++ к Linux

Мы имеем не очень сложный, но большой (т.е. много файлов) Visual Studio C++ Консоль Win32, записанная в C++ 0x стандарт в VS2010. Это не использует нестандартного кода или чего-либо (Надо надеяться!).

Я теперь хочу портировать его на Linux. Какой путь самый быстрый путь состоит в том, чтобы сделать это? autoconf? старомодный make-файл? какое-либо другое решение?

11
задан MBZ 21 July 2010 в 09:57
поделиться

5 ответов

Я бы использовал обычную программу make, но стараюсь максимально упростить ее с правилами по умолчанию. Добавляйте зависимости по мере продвижения.

РЕДАКТИРОВАТЬ: Как и на промежуточном этапе, создайте его с помощью mingw, чтобы избежать проблем с переносом всего API, пока у вас не будет работающей сборки в вашем новом механизме сборки.

Если ваше консольное приложение вызывает функции Win32 API, у вас есть выбор между изменением всего источника, в котором оно используется, или написанием модуля, реализующего эти функции.

В предыдущих попытках переноса этого типа я пробовал оба способа, и последний был проще. В итоге я написал всего от 18 до 20 функций прокладок.

Это оказалось достаточно успешным, так что я закончил тем, что написал уровень абстракции ОС, который использовался во многих проектах, которые просто позволяли мне компилировать в Windows native, cygwin, Linux, VxWorks и т. Д. С тривиальными изменениями в одном или двух файлах.

(ps Есть ли интерес к версии с открытым исходным кодом уровня абстракции ОС на C ++? Я думал о том, чтобы выпустить свободную версию этого уровня для всего мира, если будет достаточный интерес. Это в основном полезно там, где BOOST слишком тяжелый - т.е. встроенный проектов.)

7
ответ дан 3 December 2019 в 08:28
поделиться

Вы можете экспортировать make-файл из Visual Studio.

Обновление: Вообще-то больше нельзя, если только у вас нет VC6

.
2
ответ дан 3 December 2019 в 08:28
поделиться

Самый быстрый способ сделать это?

g++ *.cpp -o myapp

Серьезно, в зависимости от ваших потребностей, даже создание make-файла может быть перебор. Если вас просто интересует быстрое и грязное «давайте посмотрим, сможем ли мы получить работающую программу для Linux», просто закиньте свои файлы кода в g ++ и посмотрите, что произойдет.

1
ответ дан 3 December 2019 в 08:28
поделиться

Скорее всего, вам не нужен autoconf (и я предлагаю вам не трогать его, , если вы не любите боль ), потому что вы не пытаетесь переноситься на дюжина разновидностей Unix.

  1. Сверните ваши Make-файлы вручную. Это не должно быть слишком сложно, если у вас есть набор общих правил и минимальные файлы Makefile, которые просто определяют исходные файлы и параметры компиляции.
  2. Используйте GCC 4.5 как , он поддерживает больше функций C ++ 0x .
3
ответ дан 3 December 2019 в 08:28
поделиться

НЕ РАБОТАЙТЕ ОТ АВТО * и настройте. Это ужасно ИМХО.

Если вы каким-то образом можете получить VS 8 или 9 vcproj / sln, вы можете использовать this . Я им не пользовался, поэтому не могу дать никаких советов.

Если вы собираетесь преобразовать вручную, я бы посоветовал что-нибудь вроде CMake, так как к нему довольно легко подготовиться достаточно быстро, даже для больших проектов.

Если проект имеет простой макет, вы можете добиться успеха, используя qmake Qt 4 следующим образом:

qmake -project

Он выведет файл qmake .pro, который можно преобразовать в make-файл на многих платформах (с помощью qmake). Это должно работать нормально, но не идеально. В качестве альтернативы вы можете установить плагин Qt для VS и позволить ему сгенерировать профессиональный файл из существующего проекта VS. Это заставит вашу систему сборки зависеть от qmake Qt4, что, вероятно, не то, что вам нужно.

Конечно, есть и другие вещи, например cmake, но все они потребуют ручного вмешательства.

1
ответ дан 3 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

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