Я только что установил среду MinGW после этого сообщения
Но как добавить к нему сторонние библиотеки?
Я только что установил среду MinGW после этого сообщения
Но как добавить к нему сторонние библиотеки?
Библиотека состоит из двух основных компонентов - файлов заголовков C и архива скомпилированного объектного кода. GCC имеет множество способов определения этих вещей, но предположим, что вы используете библиотеку foo.a
, которая находится в относительном пути каталога foo/lib
, и заголовок foo.h
, который живет в foo/inc
. Ваш собственный код C живет в main.c
и выглядит следующим образом:
#include "foo.h"
int main() {
return FooFunc(); // call function in foo.a
}
Чтобы скомпилировать это, вы можете использовать командную строку:
gcc main.c -Ifoo/inc foo/lib/foo.a -o main.exe
флаг -I добавляет к пути поиска заголовков. Вы также можете добавить в путь lib, но тогда все начинает усложняться: -)
Не отличается от любой другой системы с помощью gcc
и теперь используйте новую библиотеку с соответствующими переключателями -Lfoo/bar -lfoobar
.
Я рекомендую MSys систему вокруг MinGW, чтобы сделать все это.
Я только что понял это. Я настоятельно рекомендую читать ссылку на howtos на веб-странице MinGW. Прочитайте их внимательно, так как их очень много. Они достаточно тщательны, хотя это так хорошо стоит вашего времени.
Есть два способа сделать вещи. Во-первых, вы можете просто рассматривать MinGW как компилятор, потому что это то, что он есть, и вызывать его из cmd.exe(командной строки) или IDE. Другой способ сделать это - использовать MSYS, который в основном представляет собой оболочку стиля Unix, которую вы можете запускать в Windows, чтобы использовать инструменты сборки стиля Unix, такие как configure и make.
Для любого из них вам действительно нужно прочитать, как я связался выше, чтобы понять, как ищутся пути зависимостей. Я стесняюсь объяснить это здесь, поскольку это уже объяснено в howtos и дублирует эту информацию, это не очень хорошая идея. Если у вас возникнут конкретные вопросы после их чтения, я с удовольствием предоставил вам дополнительную помощь.