Я новичок в работе со статическими / разделяемыми библиотеками в Windows. Пожалуйста, подтвердите, что я правильно понимаю - PullRequest
1 голос
/ 16 июня 2020

Немного предыстории --- Я довольно неопытный программист, и я только начал свою первую работу по кодированию в малом бизнесе, который использует довольно ограниченную платформу разработки для создания игр для сенсорных панелей / казино. 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», за исключением некоторых функций отладки, с помощью которых первая имеет меньший размер.

Спасибо за заранее!

...