Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    3

    [C++] Aiuto per inclusione delle librerie

    Salve sto tentando di compilare un prog in C++ con microsoft Visual Studio;

    Nella sezione inziale delle inclusioni con la direttiva #include ho:

    codice:
    #include <KM_util.h>
    #include <KM_fileio.h>
    #include <iostream>
    #include <string>
    #include <openssl/pem.h>
    #include <xercesc/util/OutOfMemoryException.hpp>
    #include <xercesc/parsers/XercesDOMParser.hpp>
    #include <xercesc/framework/MemBufInputSource.hpp>
    #include <xsec/framework/XSECProvider.hpp>
    #include <xsec/framework/XSECException.hpp>
    #include <xsec/enc/XSECCryptoException.hpp>
    #include <xsec/enc/OpenSSL/OpenSSLCryptoKeyRSA.hpp>
    in realtà quei file fanno parte di 4 librerie diverse che ho compilato, e probabilmente mi serviranno le dll create per afe eseguire il prog .exe finale.

    1) Sto usando Microsoft Visual C++ 2008, ed ho scelto file per console windows, essendo il prog a linea di comando. Mi conviene usare un altro compilatore?

    3) La libreria deve essere per forza compilata per essere usata nella compilazione? Sembrerebbe di no, visto che il compilatore richiede KM_util.h che non c'è tra i files della cartella dove si trova la lib compilata, ma si trova solo nel sorgente prima della compilazione

    2) Il compilatore se faccio partire la compilazione del mio prog c++, mi da come errore che non trova il file KM_util.h , se ci metto il percorso invece lo trova ma non trova i files richiesti a sua volta da KM_util.h nella stessa cartella.

    Come posso fare? Grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Allora ...

    1) l' #include non include "librerie" ma semplici file header che devono essere "raggiungibili" in una cartella specifica

    2) le librerie, i file con estensione .lib, devono essere disponibili ed indicate nella sezione "linker" nelle opzioni del progetto
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    3
    quindi devo sia compilare le librerie e linkarle nella sezione che rendere disponibili i files .h nella cartella? In realtà le librerie non sembrerebbero richieste ma solo i files.he lo sono. Inoltre come faccio a rendere TUTTA la cartella sempre accessibile dal compilatore? Il problema è che quel percorso sembra ignoto al compilatore a meno che non lo specifichi nel nome del file, ma poi il problema resta per gli altri files. Non c'è modo di rendere il percorso di quella cartella sempre disponibile?

    Grazie dei preziosi consigli

  4. #4
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Ciao ...
    1) Perchè dovresti cambiarlo?? Sappi che VC++ 2008 è uno dei migliori compilatori/IDE per Windows (forse il migliore).

    2) Se hai già compilato le varie librerie, non hai bisogno di ricompilarle. Devi solo passarle al il loro nome/path :
    Andando su Progetto->Proprietà di <nome progetto>->Proprietà di configurazione->Linker->Input e in dipendenza aggiuntive inserire i nomi delle varie librerie (es. MyLib1.lib MyLib2.lib)

    3) Di default il compilatore (e il linker) cercano i vari file in direcory specifiche. Comunque puoi aggiungere altre directory alla lista di ricerca andando su Strumenti->Opzioni->Progetti e soluzioni->Directory di VC++. Qui puoi scegliere se aggiungere delle directory di ricerca in riferimento alle librerie, ai file d' origine, d' inclusione ecc... Se la libreria MyLib1.lib si trova nella directory C:\Paperino, e se quest' ultima non è inclusa tra le directory di ricerca dovresti passare al linker il path completo della libreria:
    C:\Paperino\MyLib1.lib
    Invece, includendo anche la cartella C:\Paperino tra le cartelle di ricerca delle librerie (che si fa andando in Directory di VC++ -> selezionando "File di libreria" sotto "Mostra directory per:" -> cliccare sull' icona a forma di cartella e scrivere il path della directory), si dovrà passare al linker solo il nome della libreria:
    MyLib1.lib ... Lo stesso discorso vale per i file d' inclusione (ovviamente selezionando "File d' inclusione" sotto "Mostra directory per:")
    C++ 4ever
    496e2062696e6172696f206e6f6e2063692061767265737469 206e656d6d656e6f2020726f7661746f203a29

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.