elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como solucionar estos errores de mi proyecto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como solucionar estos errores de mi proyecto  (Leído 2,581 veces)
Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Como solucionar estos errores de mi proyecto
« en: 12 Marzo 2017, 18:09 pm »

Estoy usando openssl en el proyecto y openssl funciona y se añade correctamente, las librerias las tengo incluidas aqui:


Pero cuando voy a compilar mi proyecto me devuelve el siguiente error:
Código:
||=== Build: Debug in main (compiler: GNU GCC Compiler) ===|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `FreeCredentialsHandle@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `DeleteSecurityContext@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `FreeCredentialsHandle@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `DeleteSecurityContext@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `AcquireCredentialsHandleW@36'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `InitializeSecurityContextA@48'|
||error: ld returned 1 exit status|
||=== Build failed: 7 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|

Pienso a lo mejor se deba a que tengo que agregar otras librerías diferentes de openssl? El programa es el siguiente:
Código:
#include <client.h>
#include <messagehandler.h>
#include <message.h>
#include <presencehandler.h>
#include <connectionlistener.h>
#include <ctime>
#include <iostream>
#include <string>
using namespace std;
using namespace gloox;
//my one
const string LOGIN = "gmail.com";
ostream& operator<<(ostream& os, Message::MessageType type) {
    switch (type) {
        case Message::Chat:
            os << "Chat";
            break;
        case Message::Error:
            os << "Error";
            break;
        case Message::Groupchat:
            os << "Groupchat";
            break;
        case Message::Headline:
            os << "Headline";
            break;
        case Message::Normal:
            os << "Normal";
            break;
        case Message::Invalid:
            os << "Invalid";
            break;
        default:
            os << "unknown type";
            break;
    }
return os;
}

ostream& operator<<(ostream& os, const Message& stanza) {
    os << "type:'" << stanza.subtype() <<  "' from:'" << stanza.from().full() << "' body:'" << stanza.body() << "'";
    return os;
}

class Bot : public MessageHandler,
            /*public PresenceHandler,*/
            public ConnectionListener
            /*,public RosterListener*/{
 public:
   Bot(){
      JID jid( "mmaaria123@gmail.com/home" );
      client = new Client( jid, "mmaaria123" );
      client->registerConnectionListener( this );
      client->registerMessageHandler( this );
      client->connect(true);
   }

    virtual void onConnect() {
        cout << "It is connected good:)"  << endl;
        //sleep(5);
        client->disconnect();
    }

    virtual void onDisconnect(ConnectionError e) {
        cout << "ConnListener::onDisconnect() " << endl;
    }

    virtual bool onTLSConnect(const CertInfo& Info) {

       time_t tm = Info.date_from;
       time_t tm_to = Info.date_to;
       cout << "\t Certificate information to " << LOGIN << endl;
       cout << "\t========================================" << endl;
      // number code << "\tServer status: " << Info.status;
        if (Info.status !=0)
            {
            cout << "\t !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
            cout << "\t !!!  The certificate has a problem !!!" << endl;
            cout << "\t !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
            // parsing binary Status Cert
            if ((CertInvalid) & Info.status)
                {
                    cout << "\t- The certificate is not trusted " << endl;
                }
            if (( CertSignerUnknown) & Info.status)
                {
                    cout << "\t- The certificate hasn't got a kown issuer" << endl;
                }
            if ((CertRevoked) & Info.status)
                {
                    cout << "\t- The certificate has been revoked " << endl;
                }
            if ((CertExpired) & Info.status)
                {
                    cout << "\t- The certificate has expired " << endl;
                }
            if ((CertNotActive) & Info.status)
                {
                    cout << "\t- The certificate is not yet active " << endl;
                }
            if ((CertWrongPeer) & Info.status)
                {
                    cout << "\t- The certificate has not issued for the peer we're connected to " << endl;
                }
            if ((CertSignerNotCa) & Info.status)
                {
                    cout << "\t- The signer is not CA " << endl;
                }
            cout << endl;
            }
            // end parsing
        else
            // if Info.status=0 sertificate is valide
            cout << " *** Cert is OK!" << endl;

       cout << "\tChain: " << Info.chain << endl;
       cout << "\tIssuer: " << Info.issuer << endl;
       cout << "\tServer: " << Info.server << endl;
       cout << "\tCert date from: " << ctime(&tm);
       cout << "\tCert date to: " << ctime(&tm_to);
       cout << "\tProtocol: " << Info.protocol << endl;
       cout << "\tCipher: " << Info.cipher << endl;
       cout << "\tMAC: " << Info.mac << endl;
       cout << "\tCompression: " << Info.compression << endl;
       cout << "\t========================================" << endl;
     return true;

    }

   virtual void handleMessage( const Message& stanza,
                               MessageSession* session = 0 ){
     Message msg(Message::Chat, stanza.from(), "hello world" );
     client->send( msg );
   }

 private:
   Client* client;
};

int main( int argc, char* argv[] ){
    cout << "1" << endl;
    Bot b;
}

Gracias con antelacion.


« Última modificación: 12 Marzo 2017, 18:11 pm por Ragaza » En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: Como solucionar estos errores de mi proyecto
« Respuesta #1 en: 13 Marzo 2017, 01:56 am »

Tengo que añadir las otras librerias en modo estatico tambien:
Código:
ws2_32
dnsapi
gdi32
crypt32
secur32
Alguien sabría como conseguir las libreras estáticas creo que
Código:
crypt32
secur32
Son de openssl?


« Última modificación: 13 Marzo 2017, 04:51 am por Ragaza » En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines