Порт Visual Studio C ++ для Linux - PullRequest
       23

Порт Visual Studio C ++ для Linux

11 голосов
/ 21 июля 2010

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

Теперь я хочу перенести его на Linux. Какой способ самый быстрый? Autoconf? старомодный файл? любое другое решение?

Ответы [ 5 ]

7 голосов
/ 21 июля 2010

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

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

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

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

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

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

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

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

  1. Скатайте ваши Makefiles вручную.Это не должно быть слишком сложно, если у вас есть набор общих правил и минимальные файлы Makefile, которые просто указывают исходные файлы и параметры компиляции.
  2. Используйте GCC 4.5 как , он поддерживает больше функций C ++ 0x .
2 голосов
/ 21 июля 2010

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

Обновление : На самом деле вы больше не можете, если у вас нет VC6, лежащего вокруг

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

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

g++ *.cpp -o myapp

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

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

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

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

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

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

qmake -project

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

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

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