Saltar al contenido

Incluir una biblioteca externa en C

Hacemos una verificación exhaustiva cada tutoriales de nuestra web con la meta de mostrarte en todo momento la información con la mayor veracidad y actual.

Solución:

Primero, como principiante, siempre debe pedirle a GCC que compile con todas las advertencias y la información de depuración habilitada, es decir gcc -Wall -g. Pero en algún momento leer Cómo invocar gcc. Utilice un buen editor de código fuente (como GNU emacs o vim o gedit, etc …) para editar su código fuente C, pero sea capaz de compilar su programa en la línea de comandos (por lo tanto, no utilice siempre un IDE sofisticado para ocultar importante detalles de la compilación de usted).

Entonces probablemente te falte alguna biblioteca específica de Harvard, algunas opciones como -L seguido de un directorio de biblioteca, luego -l pegado al nombre de la biblioteca. Entonces es posible que necesites gcc -Wall -g -lcs50 (reemplazar cs50 por el nombre apropiado) y es posible que necesite algunos -Lalgún-dir

Observe que el orden de los argumentos del programa a gcc es significante. Como regla general, si a depende de b deberías poner a antes de b; más específicamente sugiero

  1. Comience con el gcc nombre del programa; añade el C nivel estándar, por ejemplo -std=c99 si quisiera
  2. Ponga opciones de advertencia, depuración (u optimización) del compilador, p. Ej. -Wall -g (es posible que incluso desee agregar -Wextra para recibir aún más advertencias).
  3. Coloque el directorio define e incluya del preprocesador, por ejemplo -DONE=1 y -Imy-include-dir/
  4. Ponga su C archivo fuente hello.c
  5. Coloque los archivos de objeto con los que está vinculando, es decir, bar.o
  6. Pon los directorios de la biblioteca -Lmy-lib-dir/ si es relevante
  7. Pur los nombres de las bibliotecas -laa y -lbb (cuando el libaa.so depende de libbb.so, en ese orden)
  8. Terminar con -o your-program-name para dar el nombre del binario producido. No uses el nombre predeterminado a.out

Opciones de presentación de directorio -I (para preprocesador incluye) y -L para las bibliotecas se puede dar varias veces, el orden es significativo (orden de búsqueda).

Muy rápidamente, querrá utilizar herramientas de automatización de compilación como GNU make (quizás con la ayuda de remake en Linux)

Aprenda también a usar el depurador gdb.

Adquiera el hábito de pedir siempre advertencias al compilador y siempre mejore su programa hasta que no reciba advertencias: el compilador es su amigo, ¡lo está ayudando!

Leer también Cómo depurar programas pequeños y el famoso SICP (que enseña conceptos muy importantes; es posible que desee utilizar guile en Linux mientras lo lee, consulte http://norvig.com/21-days.html para obtener más información). Tenga también en cuenta herramientas como valgrind

Divertirse.

Necesita vincular la biblioteca durante la compilación. La biblioteca debe terminar en .a o .so si está en Ubuntu. Para vincular contra una biblioteca:

gcc -o myProgram myProgram.c -l(library name goes here but no parentheses)

Tomo este curso y, a veces, necesito practicar sin conexión mientras viajo o me desplazo. En Windows, usando MinGW y Notepad ++ como IDE (porque me encanta y lo uso generalmente mientras codifico Python) finalmente encontré una solución y algo de tiempo para escribirlo.

Empezando desde cero. Pasos para configurar el compilador gcc C, si ya está configurado, salte al 5

  1. Descarga Git e instálalo. Incluye Git Bash, que es un terminal linux MINGW64. Prefiero usar Git porque necesito herramientas de Linux como sed, awk, pull, push en mi Windows y puedo reemplazar la terminal de Guthub.
  2. Una vez instalado Git, asegúrese de que los paquetes gcc estén instalados. Puede usar mi configuración como referencia …Gestor de instalación de MinGW - gcc
  3. Asegúrese de que su compilador funcione. Tírale este simple código,

    • guardándolo en su directorio de trabajo Documentos / Harvard_CS50 / Week2 /Hola C
    #include 
    
    int main(void)
    
     printf("Hello StackOverflown");
    
    
    • comienzo Git Bash -> navegar al directorio de trabajo

    cd Documentos / Harvard_CS50 / Week2 /

    • compilarlo en bash terminal

    gcc helloworld.c -o helloworld.exe

    • ejecutarlo usando bash terminal

    ./helloworld.exe

    Hola StackOverflow

    1. Si tú ves Hola StackOverflow, su compilador funciona y puede escribir código C.

Ahora, lo importante: instalar la biblioteca CS50 localmente y usarla sin conexión. Esto debería ser aplicable a cualquier otra biblioteca que se presente más adelante en el curso.

  1. Descargue el archivo de código fuente más reciente cs50.cy el archivo de encabezado cs50.h de https://github.com/cs50/libcs50/tree/develop/src y guárdelos en Documentos / Harvard_CS50 / src

  2. Navegue al directorio src y enumere los archivos para asegurarse de que está en la ubicación correcta usando

    ls

    cs50.c cs50.h

  3. Genial, estamos aquí. Ahora necesitamos compilar el archivo de objeto para la biblioteca usando

    gcc -c -ggdb -std = c99 cs50.c -o cs50.o

  4. Ahora, usando el archivo de objeto cs50.o generado, podemos crear nuestro archivo de archivo de biblioteca cs50.

    ar rcs libcs50.a cs50.o

  5. Después de todos estos pasos, terminamos con 2 archivos adicionales a nuestros archivos originales. Estamos interesados ​​en solo 2 de ellos cs50.hlibcs50.a

    ls

    cs50.c cs50.h cs50.o libcs50.a

  6. Copie los archivos de encabezado y biblioteca en sus ubicaciones de destino. Mi MinGW está instalado en C: así que los copio allí

    cs50.h -> C: MinGW include

    libcs50.a -> C: MinGW lib

Prueba de la biblioteca cs50

Para asegurarnos de que nuestra biblioteca funcione, podemos lanzar uno de los scripts de ejemplo en la conferencia y ver si podemos compilarlo usando el archivo de encabezado cs50.h para el método get_string ().

#include 
#include 

int main(void) 

    printf("Please input a string to count how long it is: ");
    string s = get_string();
    int n = 0;
    while (s[n] != '')
        
            n++;
        
    printf("Your string is %i chars longn", n); 

  1. Compile el código cs50 usando las bibliotecas gcc y cs50. Quiero ser explícito y usar:

    gcc -ggdb -std = c99 -Wall -Werror test.c -lcs50 -o test.exe

    Pero simplemente puede señalar la fuente, el nombre del archivo de salida y la biblioteca cs50

    gcc test.c -o test.exe -lcs50

Aquí vamos, el programa se compila usando el encabezado y los métodos se pueden usar dentro.

Si desea Notepad ++ como un IDE, puede seguir este consejo para configurarlo con gcc como compilador y ejecutar su código desde allí. Solo asegúrese de que su script nppexec incluya la biblioteca cs50

npp_save
gcc -ggdb -std=c99 -Wall -Werror "$(FULL_CURRENT_PATH)" -lcs50 -o "$(CURRENT_DIRECTORY)$(NAME_PART).exe"
cmd /c "$(CURRENT_DIRECTORY)$(NAME_PART).exe"

Ejecute el código CS50 en Notepad ++

Recuerda que tienes la opción de valorar este ensayo si tropezaste tu obstáculo .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *