Problema compilazione libreria!!! Help!!!

di il
8 risposte

Problema compilazione libreria!!! Help!!!

Salve a tutti,
sto cercando di compilare la libraria di SQLcipher per ottenere una DLL. Sono riuscito ad eseguire tutti i passi eccetto l'ultimo (che sfiga!!!);
in particolare, ho eseguito da terminale i seguenti comandi come riportato nella guida:

./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="/usr/lib/x86_64-linux-gnu/libcrypto.a"
make clean
make sqlite3.c
make
make dll
Purtroppo, quando invio il comando "make dll" (o anche sudo make dll) mi compare questo errore che non riesco a risolvere:
gcc -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/home/christian/sqlcipher/src -I/home/christian/sqlcipher/ext/rtree -I/home/christian/sqlcipher/ext/fts3 -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG  -DSQLITE_THREADSAFE=1   -shared -o sqlite3.dll sqlite3.def \
   -Wl,"--strip-all" .libs/sqlite3.o
/usr/bin/ld:sqlite3.def: file format not recognized; treating as linker script
/usr/bin/ld:sqlite3.def:2: syntax error
collect2: error: ld returned 1 exit status
Makefile:1161: set di istruzioni per l'obiettivo "sqlite3.dll" non riuscito
make: *** [sqlite3.dll] Errore 1
Non riesco a capire quale sia il problema; purtroppo sono ancor molto inesperto essendo un giovane studente.
Qualcuno può aiutarmi?
Grazie mille

8 Risposte

  • Re: Problema compilazione libreria!!! Help!!!

    Sono un pochino confuso, vuoi ottenere una DLL per linux, o una .so?
  • Re: Problema compilazione libreria!!! Help!!!

    Guarda cerco di spiegarmi bene: la procedura di compilazione la sto facendo con linux perche risulta piu semplice (in windows bisognerebbe installare vari emulatori shell ecc).....pero la dll che vorrei ottenere la dovro poi utilizzare per sviluppare un software c#con Visual Studio in windows....spero di essermi spiegato bene...se hai altre domande fai pure cerchero di essere il piu preciso possibile
  • Re: Problema compilazione libreria!!! Help!!!

    christiantm300 ha scritto:


    Guarda cerco di spiegarmi bene: la procedura di compilazione la sto facendo con linux perche risulta piu semplice (in windows bisognerebbe installare vari emulatori shell ecc).....pero la dll che vorrei ottenere la dovro poi utilizzare per sviluppare un software c#con Visual Studio in windows....spero di essermi spiegato bene...se hai altre domande fai pure cerchero di essere il piu preciso possibile
    Ti sei spiegato bene, ma quello che vuoi fare, E' IMPOSSIBILE.

    O, piu' esattamente, e' particolarmente complicato perche' richiede l'uso di un CROSS-COMPILATORE.
    Con gcc si potrebbe anche fare (forse), ma vai tu a sapere come configurare gcc/Linux affiche' compili per Windows!

    Quindi, se vuoi compilare per Windows,

    1) usi cygwin oppure
    2) usi mingw oppure
    3) usi Visual Studio

    e lo fai in Windows.

    Se non lo riesci a fare, abbandona.
  • Re: Problema compilazione libreria!!! Help!!!

    migliorabile ha scritto:


    christiantm300 ha scritto:


    Guarda cerco di spiegarmi bene: la procedura di compilazione la sto facendo con linux perche risulta piu semplice (in windows bisognerebbe installare vari emulatori shell ecc).....pero la dll che vorrei ottenere la dovro poi utilizzare per sviluppare un software c#con Visual Studio in windows....spero di essermi spiegato bene...se hai altre domande fai pure cerchero di essere il piu preciso possibile
    Ti sei spiegato bene, ma quello che vuoi fare, E' IMPOSSIBILE.

    O, piu' esattamente, e' particolarmente complicato perche' richiede l'uso di un CROSS-COMPILATORE.
    Con gcc si potrebbe anche fare (forse), ma vai tu a sapere come configurare gcc/Linux affiche' compili per Windows!

    Quindi, se vuoi compilare per Windows,

    1) usi cygwin oppure
    2) usi mingw oppure
    3) usi Visual Studio

    e lo fai in Windows.

    Se non lo riesci a fare, abbandona.
    Capito....quindi ho proprio sbagliato strada.....inizialmente infatti avevo cominciato con windows poi purtroppo i problemi erano una montagna perchè praticamente bisognava avere Visual Studio (per fortuna quello c'è), Activestate Perl, OpenSSL e mingw.Poi la procedure prevedeva di compilare openSSL con Perl e successivamente SQLcipher con mingw ma avevo già dei problemi con la compilazione di di openSSL quindi avevo rinunciato pensando che direttamente con Linux fosse più semplice...purtroppo ignorantemente ed a causa della poca esperienza non ho centrato il bersaglio ahahaha; posso provare un nuovo tentativo con windows ma non so se riesco
  • Re: Problema compilazione libreria!!! Help!!!

    Mi pare che visual studio fornisca una procedura guidata per la creazione di dll, per cui non capisco perché usare altri metodi.
  • Re: Problema compilazione libreria!!! Help!!!

    Ok, sono riuscito ad ottenere i due file .c e .h funzionanti (cioè non contenenti errori ecc...)
    Adesso non mi rimane altro che creare una DLL con Visual Studio o con altri software: il problema è che leggendo alcune guide online mi sono accorto che bisogna andare a modificare ogni singolo prototipo di tutte le funzioni, ma con una librerie di 19 mila righe non credo si una cosa molto fattibile. Qualcuno ha delle soluzioni alternative oppure dei software che se ne occupano in automatico?
    Grazie a tutti
  • Re: Problema compilazione libreria!!! Help!!!

    Devi modificare le dichiarazioni DELLE SOLE funzioni che esporti, NON DI TUTTE!
    E queste saranno due o poco piu'.

    In alternativa, crea delle funzioni che esporterai, a cui passi tutti i parametri che servono per chiamare tutte le altre.
  • Re: Problema compilazione libreria!!! Help!!!

    A questo punto questa sezione non c'entra nulla ... semmai è un problema C/C++ ... che dovresti spiegare ...
Devi accedere o registrarti per scrivere nel forum
8 risposte