Немного предыстории --- Я довольно неопытный программист, и я только начал свою первую работу по кодированию в малом бизнесе, который использует довольно ограниченную платформу разработки для создания игр для сенсорных панелей / казино. IDE была разработана для использования в Ubuntu, но по какой-то причине некоторые из наших разработчиков используют порт Windows.
Так или иначе, я написал плагин (общая библиотека, .so file), который позволяет нашим Linux программистам воспроизводить MIDI-файлы с помощью Fluidsynth API (программный синтезатор). Я пытаюсь написать эквивалентный файл .dll для наших Windows программистов, но я не очень хорошо знаком с окружающей средой.
Я некоторое время играл с Microsoft Visual Studio, и я хотел бы убедиться, что у меня есть базовое c понимание того, как работают его библиотеки static / dynamic c и объектные файлы, прежде чем копаться слишком глубоко. Вот некоторые из моих впечатлений, пожалуйста, подтвердите, что я на правильном пути.
1) Файл .obj в Windows эквивалентен .o файл в Linux.
2) Файл .lib в Windows эквивалентен файлу .a (библиотека stati c) в Linux.
3) Файл .dll в Windows эквивалентен .so (общая / динамическая c библиотека) в Linux.
4) Скомпилированный заголовок не строго требуется при связывании объектов / библиотек.
5) Связывание с .dll требует использования некоторой библиотеки импорта .lib , чего нет в Linux. Почему?
6) Сборка «Release» в VS дает мне ту же функциональность, что и сборка «Debug», за исключением некоторых функций отладки, с помощью которых первая имеет меньший размер.
Спасибо за заранее!