Как построить проект Visual C ++ для Linux? - PullRequest
40 голосов
/ 29 апреля 2009

Какой самый лучший и простой способ создать (для Linux) приложение C ++, написанное в Visual Studio? Сам код готов - я использовал только кроссплатформенные библиотеки.

Можно ли подготовить все под Windows в Visual Studio, а затем собрать его с помощью инструмента CLI под Linux? Есть ли какие-либо документы, описывающие это?

РЕДАКТИРОВАТЬ: Дополнительная информация:

  • Используемые библиотеки: stl, wxwidgets, boost, asio, cryptlib.

  • Очень мало ноу-хау Linux.

РЕДАКТИРОВАТЬ # 2: Я выбрал следующее решение: Создайте новый проект с kdevelop и скомпилируйте все там.

Ответы [ 4 ]

19 голосов
/ 29 апреля 2009

Мы используем CMake для проектов Linux. CMake может генерировать файлы проектов KDevelop и Visual Studio, так что вы можете просто создать свой файл CMake в качестве источника файлов IDE для конкретной платформы. Генератор KDevelop в порядке, поэтому вы можете редактировать и компилировать его в KDevelop (который, в свою очередь, вызовет Make).

С другой стороны, если у вас нет ничего сложного, вы можете использовать CMake или просто Make для создания этой вещи в Linux, если вы хотите остаться с файлом решения (что я сейчас делаю для библиотеки с тестовые приложения). Этот подход усложняется, когда ваш процесс сборки - это больше, чем просто «выбросить эти файлы в компилятор и давайте посмотрим, что он делает», поэтому решение CMake, на мой взгляд, является хорошей вещью для кросс-платформенной разработки.

7 голосов
/ 01 мая 2009

Вот как вручную скомпилировать код C под Linux без дополнительных инструментов сборки :

gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2

Однако, если ваш проект превышает пару файлов, вы можете использовать вместо этого инструмент сборки (например, CMake, см. Ответ OregonGhost), чтобы автоматизировать компиляцию многих файлов и сделать ее инкрементальный. Если вы используете инструмент сборки, он будет запускать gcc изнутри, с аналогичными аргументами выше. Полезно понимать приведенные выше аргументы, поэтому вы можете устранить неполадки в случае сбоя автоматической сборки.

Это скомпилирует code1.c и code2.c в исполняемую двоичную прогу, загружая файлы .h из., Includesir1 и includesir2, загружая библиотеки (например, libuse1.so * и libuse2.so *) из каталогов libdir1 и libdir2, используя библиотеки use1 (соответствуют имени файла libuse1.so *) и use2.

Если вы получили неопределенные символьные ошибки в ваших .c файлах, вам нужно указать больше -I флагов. Если вы получили неопределенные символьные ошибки в файле .o, вы должны указать больше -l флагов. Если вы получаете cannot find -l... ошибки, вы должны указать больше -L flags.

5 голосов
/ 08 февраля 2017

8 лет спустя ...

Сегодня я наткнулся на этот вопрос и подумал, что вам стоит взглянуть на Visual C ++ для Linux .

Выпущенный в марте 2016 года, VC ++ для Linux позволяет создавать проект на VC ++, а затем создавать его на машине / виртуальной машине Linux с использованием встроенных инструментов Linux. Более того, вы также можете отлаживать ваше приложение из VS, поскольку инструменты Linux позволяют отладчику VS управлять GDB на вашей машине / виртуальной машине Linux через SSH !!

Похоже, это почти то, о чем @mspoerr просил:)

4 голосов
/ 29 апреля 2009

Какой самый лучший и простой способ создать приложение на c ++, написанное для Visual Studio, для Linux? Сам код готов - я использовал только кросс-платформенные библиотеки.

  • Проверьте, есть ли что-то, что не является частью стандарта C ++
  • Сполосните и повторите
  • Создание make-файла или проекта KDevelop

Et voilà!

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