Я только что установил среду MinGW после this postКак добавить сторонние библиотеки в MinGW?
Но как добавить к ней сторонние библиотеки?
Я только что установил среду MinGW после this postКак добавить сторонние библиотеки в MinGW?
Но как добавить к ней сторонние библиотеки?
Библиотека состоит из двух основных компонентов - файлов заголовков С и архива скомпилированного объектного кода. 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, чтобы сделать все это.
О, я забыл упомянуть, что я использую Windows XP, можете ли вы уточнить подробности? – user198729
Вам нужна книга (или веб-учебник) о разработке кода с помощью инструментов Unix. Здесь нет ничего особенного для Windows XP - кроме того, что вы пытаетесь изучить рабочий процесс, который не является обычным явлением в Windows. Вы делаете правильные вещи здесь, но вам более или менее нужно знать, как это работает в Linux/Unix, чтобы сделать вывод о том, как это делается на XP. Просто найдите достойный учебник где-нибудь ... –
Я только что понял это. Я настоятельно рекомендую прочитать linking howtos на веб-странице MinGW. Прочтите их внимательно, так как их достаточно много. Они достаточно тщательны, так что это стоит вашего времени.
Существует по существу два способа делать вещи. Во-первых, вы можете просто рассматривать MinGW как компилятор, потому что это то, что есть, и вызывать его из cmd.exe (командной строки) или IDE. Другой способ сделать это - использовать MSYS, который в основном представляет собой оболочку стиля Unix, которую вы можете запускать в Windows, чтобы использовать инструменты сборки стиля Unix, такие как configure и make.
Для любого из них вам действительно нужно прочитать, как я связался выше, чтобы понять, как ищутся пути зависимостей. Я стесняюсь объяснить это здесь, поскольку это уже объяснено в howtos и дублирует эту информацию, это не очень хорошая идея. Если у вас возникнут конкретные вопросы после их чтения, я с удовольствием окажу вам дополнительную помощь.
+ 1, это полезно! Но можете ли вы сделать его более общим? Скажем, если я хочу включить 2 библиотеки из двух разных каталогов.BTW, кажется, не каждая библиотека состоит из * .h и * .a, по крайней мере, я вижу только * .a и *.o под MinGW/lib? – user198729
Чтобы указать дополнительные пути, используйте флажки -I, чтобы указать больше библиотек, укажите их в командной строке. В конце дня SO не является учебным сайтом - прочитайте руководство GCC и, возможно, книгу, такую как http://www.network-theory.co.uk/gcc/intro. – 2009-12-31 15:49:19