Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    phpiano
    Guest

    far Vedere librerie al compilatore

    ciao a tutti

    sono nuovo alla programmazione in ambiente nix. ho scaricato una libreria c di funzioni cgi (certa cgi-lib) giusto per fare qualche esperimento. ho eseguito il make. vorrei compilare il prog di esempio per testare il tutto.

    se eseguo gcc hello.c il compilatore risponde che il programma contiene simboli non definiti che sono proprio quelli delle librerie incluse... in altre parole queste librerie non le vede

    io le ho incluse così

    #include "cgi-lib.h"
    #include "html-lib.h"

    e sono nella stessa dir del programma

    vi ringrazio anticipatamente
    ciao

  2. #2
    phpiano
    Guest
    nessuno sa dirmi dove sbaglio???

  3. #3
    se la libreria si chiama libcgibin.a

    gcc -o esempio esempio.o -lcgibin

    eventualmente, se la libreria non l'hai messa nelle directory standard usate dal linker devi aggiungere il path dove risiede la libreria con l'opzione -L

    es: la libreria l'hai messa in /home/pippo/lib
    gcc -o esempio esempio.o -lcgibin -L/home/pippo/lib

  4. #4
    phpiano
    Guest
    ma come mai si utilizza solo parte del nome della libreria?

  5. #5
    Ci pensa il linker ad aggiungere il lib davanti al nome (cgibin), come anche l'estensione.

    Per esempio se usi la libreria math
    oltra ad includere math.h
    devi anche linkare la libreria libm
    quindi
    gcc -o esempio esempio.o -lm

    Di default gcc non linka automaticamente la libreria math.

    http://ildp.pluto.linux.it/HOWTO/GCC-HOWTO-6.html

    ulteriri info su
    man gcc

  6. #6
    phpiano
    Guest
    le lib sono 2 e si chiamano:

    cgi-lib.h
    html-lib.h

    si trovano in /Users/green/cglib

    e sono indicate nel file sorgente con le virgolette:

    #include "cgi-lib.h"
    #include "html-lib.h"

    il file sorgente si chiama samp.c

    e si trova in /Users/green/cgilib

    non ho file con estensione .a

    mi faresti vedere come devo scrivere la stringa completa???


    grazie tante

  7. #7
    Mi daresti il link da cui le hai scaricate, perchè qualche file tipo cgi-lib.c html-lib.c dovrebbe esserci.

    E' questa qui?
    http://www.eekim.com/software/cgihtml/cgihtml.html

  8. #8
    phpiano
    Guest
    si quelli ci sono

  9. #9
    phpiano
    Guest
    il link è quello

    cgi-lib.a c'è ma per l'altra libreria non ci sono file .a

  10. #10
    allora, supponendo che già sei root
    entra nella directory contenente i file
    cgi-lib.c
    cgi-llist.c
    html-lib.c

    lancia il comando
    make install
    che in questo modo genererà la libreria cgihtml.a
    la copierà in
    /usr/local/etc/httpd/cgi-src

    e compilerà anche gli esempi

    per compilare un esempio di test nella directory examples
    gcc -c test.cgi

    per linkare il file oggetto, con tale libreria
    gcc -o test.cgi test.cgi.o ../cgihtml.a

    se il file test.cgi non è prensente nella dir examples
    gcc -o test.cgi test.cgi.o /usr/local/etc/httpd/cgi-src/cgihtml.a

    oppure, rinomini cgihtml.a in libcgihtml.a

    gcc -o test.cgi test.cgi.o -lcgihtml.a -L/usr/local/etc/httpd/cgi-src

    oppure meglio ancora crei un Makefile come quello nella dir examples.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.