Подтвердить что ты не робот

Создание файлов файлов (для GCC) из решения Visual Studio

Я хочу скомпилировать мое решение Visual Studio с тремя проектами в Linux с помощью GCC. Решение содержит два проекта DLL и одного приложения (.EXE), в котором используются эти DLL. Исходный код не содержит зависимости от Windows.

Как преобразовать решение (с 3 проектами) для создания файлов, которые могут быть скомпилированы в Linux с помощью GCC.

Есть ли какой-либо инструмент для преобразования решения Visual Studio (Project) для создания файлов /s.

Версия Visual Studio Visual Studio 2008

4b9b3361

Ответ 2

Во-первых, у Linux нет библиотеки DLL, у нее есть общие объекты, которые могут быть динамически связаны с другой семантикой. Прочтите описание Levine Linkers and Loaders и Программа Library Howto

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

Не забудьте установить Makefile, чтобы -Wall был передан в GCC (и, возможно, также -std=gnu99 и -g, если вы хотите отладочную информацию, возможно, через CFLAGS или CXXFLAGS)).

Если ваша программа не является миллионной строкой приложения кода, вам не составит большого труда написать собственный Makefile. Я настоятельно рекомендую научиться использовать GNU make и прочитать его документацию, которая, как мне кажется, хорошо написана (с некоторой частью учебника). Вы можете взглянуть на вывод make -p, который дает "встроенное знание" GNU make.

Вы также можете заглянуть в существующие приложения Linux для свободного программного обеспечения и изучить их Makefile.

Кстати, если вам трудно отлаживать ваши файлы make файлов, используйте remake.

Не думайте в терминах "конвертирования моего приложения в Linux", но больше с точки зрения "кодирования приложения Linux".

Обратите внимание, что существуют некоторые рамки (в частности, Qt) для разработки программного обеспечения в Linux, Windows и MacOS. Вы даже можете использовать их для приложений без GUI.

Не забывайте читать такие материалы, как расширенное программирование linux и advanced unix