2009-12-31 4 views

ответ

5

Библиотека состоит из двух основных компонентов - файлов заголовков С и архива скомпилированного объектного кода. 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, но тогда все начинает усложняться :-)

+0

+ 1, это полезно! Но можете ли вы сделать его более общим? Скажем, если я хочу включить 2 библиотеки из двух разных каталогов.BTW, кажется, не каждая библиотека состоит из * .h и * .a, по крайней мере, я вижу только * .a и *.o под MinGW/lib? – user198729

+0

Чтобы указать дополнительные пути, используйте флажки -I, чтобы указать больше библиотек, укажите их в командной строке. В конце дня SO не является учебным сайтом - прочитайте руководство GCC и, возможно, книгу, такую ​​как http://www.network-theory.co.uk/gcc/intro. – 2009-12-31 15:49:19

2

не отличается от любой другой системы, использующей gcc

  • получить источники
  • Untar
  • запуска Configure - это может потребоваться подправить или два
  • не делают
  • сделать установку

и теперь используйте свой новый библиотека с соответствующими -Lfoo/bar -lfoobar коммутаторами.

Я рекомендую систему MSys около MinGW, чтобы сделать все это.

+0

О, я забыл упомянуть, что я использую Windows XP, можете ли вы уточнить подробности? – user198729

+0

Вам нужна книга (или веб-учебник) о разработке кода с помощью инструментов Unix. Здесь нет ничего особенного для Windows XP - кроме того, что вы пытаетесь изучить рабочий процесс, который не является обычным явлением в Windows. Вы делаете правильные вещи здесь, но вам более или менее нужно знать, как это работает в Linux/Unix, чтобы сделать вывод о том, как это делается на XP. Просто найдите достойный учебник где-нибудь ... –

1

Я только что понял это. Я настоятельно рекомендую прочитать linking howtos на веб-странице MinGW. Прочтите их внимательно, так как их достаточно много. Они достаточно тщательны, так что это стоит вашего времени.

Существует по существу два способа делать вещи. Во-первых, вы можете просто рассматривать MinGW как компилятор, потому что это то, что есть, и вызывать его из cmd.exe (командной строки) или IDE. Другой способ сделать это - использовать MSYS, который в основном представляет собой оболочку стиля Unix, которую вы можете запускать в Windows, чтобы использовать инструменты сборки стиля Unix, такие как configure и make.

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

Смежные вопросы