2009-12-31 15 views

Respuesta

5

Una biblioteca consta de dos componentes principales: los archivos de encabezado C y el archivo de código de objeto compilado. GCC tiene una desconcertante variedad de formas de especificar estas cosas, pero digamos que está utilizando una biblioteca foo.a que vive en la ruta de directorio relativa foo/lib, y un encabezado foo.h que vive en foo/inc. Su propio código C vive en main.c y se ve así:

#include "foo.h" 
int main() { 
    return FooFunc(); // call function in foo.a 
} 

Para compilar esto, se podía utilizar la línea de comandos:

gcc main.c -Ifoo/inc foo/lib/foo.a -o main.exe 

la bandera -I se suma a la ruta buscados para las cabeceras. También puede agregar a la ruta de la lib, pero luego las cosas comienzan a complicarse :-)

+0

+ 1, ¡es útil! ¿Pero puede hacerlo más general? Diga si quiero incluir 2 bibliotecas de dos directorios diferentes.BTW, parece que no todas las bibliotecas son * .h y * .a, al menos solo veo * .a y *.o en MinGW/lib? – user198729

+0

Para especificar más rutas de acceso, use más -I indicadores, para especificar más bibliotecas, especifíquelas en la línea de comando. Al final del día, SO no es un sitio de tutoriales: lea el manual de GCC y posiblemente un libro, como http://www.network-theory.co.uk/gcc/intro. –

2

No es diferente de cualquier otro sistema que utiliza gcc

  • obtener las fuentes
  • untar
  • ejecutar configure - Esto puede requerir un pellizco o dos
  • hacen
  • hacen instalar

y ahora use su nuevo biblioteca con los interruptores apropiados -Lfoo/bar -lfoobar.

Recomiendo el sistema MSys alrededor de MinGW para hacer todo esto.

+0

Ah, olvidé mencionar que estoy usando Windows XP, ¿puede ser más específico sobre los detalles? – user198729

+0

Necesita un libro (o tutorial web) sobre el desarrollo de código con las herramientas de Unix. No hay nada tan específico para Windows XP aquí, aparte del hecho de que está tratando de aprender un flujo de trabajo que no es común en Windows. Estás haciendo lo correcto aquí, pero más o menos necesitas saber cómo funciona en Linux/Unix para inferir cómo se hace en XP. Solo encuentre un tutorial decente en alguna parte ... –

1

Acabo de averiguarlo por mi cuenta. Recomiendo leer el linking howtos en la página web MinGW. Léelos con cuidado, ya que hay mucho que asimilar. Son bastante minuciosos, así que vale la pena su tiempo.

Existen esencialmente dos formas de hacer las cosas. En primer lugar, puede considerar MinGW como un compilador, porque eso es lo que es e invocarlo desde cmd.exe (el símbolo del sistema) o un IDE. La otra forma de hacerlo es usar MSYS, que básicamente es un shell de estilo Unix que puedes ejecutar en Windows para usar herramientas de compilación de estilo Unix como configure y make.

Para cualquiera de estos usted realmente tiene que leer el howto I vinculado anteriormente para comprender cómo se buscan las rutas de dependencia. Dudo en explicarlo aquí ya que ya está explicado en los howtos y duplicar esa información no es una buena idea. Si tiene preguntas específicas después de leerlas, con gusto le ofreceré más ayuda.

Cuestiones relacionadas