Создание новой библиотеки поверх другой библиотеки (SDL и Eclipse) - PullRequest
3 голосов
/ 27 мая 2011

Я работаю над проектом с SDL.Я чувствую, что большая часть моего кода может / должна быть пригодна для повторного использования для любых других проектов, которые я, возможно, захочу реализовать.

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

Обычно я захожу в настройки проекта и редактирую Mingw32 Linker, чтобы включить библиотеки (ming32, SDLmain и SDL).Но компоновщик не отображается в настройках.

Итак, мои вопросы:

Нет ли настроек компоновщика, потому что сборка библиотеки - это только операция компиляции?

И вВообще, возможно ли построить библиотеку поверх существующих библиотек?То есть, напишите мою библиотеку, используя функции и структуры SDL.Или я должен был бы получить исходный код и полностью перестроить его, включив мой код?

Кроме того, советы по совместному использованию и статическому в этом случае?

(Кроме того, любые советы о том, куда идтиузнать больше о компиляторах, компоновщиках и т. д. Я прошел через структуры данных в школе, но не дальше)

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

В качестве вступления вы должны очень хорошо отличать статические библиотеки от динамических, они совершенно разные звери ... ответили на ваши вопросы:

Нет ли настроек компоновщика, потому что сборкабиблиотека это только операция компиляции?

Я полагаю, вы создаете статическую библиотеку в этом случае.Статическая библиотека - это просто коллекция в одном объектном файле всех отдельных объектных файлов (то есть файлов .o, созданных компилятором), которые составляют ваше дерево исходников.Не больше, не меньше.

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

Общая библиотека (также динамическая библиотека) - это исполняемый файл, который встраивает всестатические библиотеки, от которых это зависит.Он также может иметь внешние зависимости с другой разделяемой библиотекой, которая не будет встроена.

И вообще, возможно ли построить библиотеку поверх существующих библиотек?То есть, напишите мою библиотеку, используя функции и структуры SDL.Или я должен был бы получить исходный код и полностью перестроить его с включенным кодом?

Это вполне возможно как для статических, так и для динамических библиотек.

Кроме того, в этом случае совет относительно общего или статического?

В этом случае совет не возможен, поскольку вы не указали достаточно информации.Посмотрите на это: Когда использовать динамические и статические библиотеки и this , чтобы иметь своего рода руководство.

(Кроме того, любые советы о том, куда идтибольше узнать о компиляторах, компоновщиках и т. д. Я изучил структуры данных в школе, но не дальше)

Я думаю, что две ссылки выше дают вам много информации.Если вы хотите углубиться в детали, вы можете начать с этой статьи в Википедии и просмотреть оттуда.

2 голосов
/ 27 мая 2011

Библиотека, которую вы создаете, может иметь внешние зависимости. Это означает, что вы можете связать его с SDL или любыми другими внешними библиотеками, которые вам нравятся.

Я думаю, что эта страница объясняет все остальные ваши вопросы: Создание DLL в MingW

...