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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19
101  Programación / Programación C/C++ / Re: como evitar el error de linker : Duplicated symbol for Architecture x86? en: 28 Abril 2019, 15:00 pm
Que bien, no sabia que había más opciones, afortunadamente no envíoñ tengo tantos archivos como para que la compilacion manual sea un dolor de cabeza, probare también con lo que has mencionado, muchas gracias
102  Programación / Programación C/C++ / Re: como evitar el error de linker : Duplicated symbol for Architecture x86? en: 28 Abril 2019, 05:56 am
Lo revisare, gracias.

Como dato extra, si yo retiro #include "udbmanagement.hpp" en uno de los dos archivos (solo en uno), el error desaparece... es como que no pueden estar usándose por ambos al mismo tiempo, evidentemente que debo tener símbolos duplicados si los esta invocando dos veces..

Probare lo que dices con el archivo de proyecto..
Lo otro que hare será separar el archivo .hpp en dos, .h y .cpp, me da la espina de que es mejor practica incluir las cabeceras y no las fuentes..

Comentare como me fue..
gracias!
103  Programación / Programación C/C++ / Re: como evitar el error de linker : Duplicated symbol for Architecture x86? en: 28 Abril 2019, 01:28 am
Qt creator en mac
104  Programación / Programación C/C++ / como evitar el error de linker : Duplicated symbol for Architecture x86? en: 28 Abril 2019, 00:19 am

Hola!

Tengo 4 archivos:

udbmanagement.hpp
uloginwindow.h
main.cpp
uloginwindow.cpp


main.cpp está incluyendo a "udbmanagement.hpp"
loginwindow.cpp también incluye esta misma cabecera "udbmanagement.hpp"

Sin embargo, al compilar, me envía ese error del linker, símbolos duplicados, los símbolos duplicados son 4 funciones que están dentro del archivo .hpp

El problema es que utilizo esas funciones tanto en main, como en uloginwindow.cpp

que debería hacer en este caso?..

(he probado con #pragma once pero sigo teniendo el mismo error.)

en el archivo .hpp tengo 2 structs cada una tiene algunas funciones, y esta todo definido dentro del mismo .hpp .. quizá sea mejor idea separarlos en .h y .cpp ...

Alguna idea?..
Saludos y gracias...
105  Programación / Programación C/C++ / Re: Símbolos no encontrados para arquitectura x86/x64 en: 24 Abril 2019, 17:20 pm
Gracias por las aclaraciones...

Estoy más claro ahora

Saludos  :D
106  Programación / Programación C/C++ / Re: Símbolos no encontrados para arquitectura x86/x64 en: 23 Abril 2019, 21:40 pm
Si cierto, otro error de mi parte, ya he quitado los deletes...

al final también quité el struct... las variables estáticas quedaron directamente fuera.. dentro de un namespace

Código:

namespace UTools{

     static const char * DB_FILE_NAME = "data.db";
     static const char * DB_FULL_PATH = "./";
     static const char * DB_FULL_PATH_NAME = "./data.db";

}


Y al parecer, char * es una excepción a la regla, es lo único que implícitamente solicita memoria dinámica, sin que yo escriba new... acabo de hacer las pruebas....

107  Programación / Programación C/C++ / Re: Símbolos no encontrados para arquitectura x86/x64 en: 23 Abril 2019, 20:35 pm
Código
  1.  
  2. struct Constants{
  3.  
  4.        static const char * DB_FILE_NAME;
  5.        static const char * DB_FULL_PATH;
  6.        static const char * DB_FULL_PATH_NAME;
  7.  
  8.        ~Constants();
  9.  
  10.    };
  11.  
  12.    //Aqui esta lo nuevo:
  13.    const char * Constants::DB_FILE_NAME = "data.db";
  14.    const char * Constants::DB_FULL_PATH = "./";
  15.    const char * Constants::DB_FULL_PATH_NAME = "./data.db";
  16.  
  17.    Constants::~Constants(){
  18.        delete DB_FILE_NAME;
  19.        delete DB_FULL_PATH;
  20.        delete DB_FULL_PATH_NAME;
  21.    }
  22.  
  23.  

Ya vi, mi error era que estaba inicializando mal, cuando los miembros son static, debo hacerlo de la forma en las lineas 13, 14 y 15.  Parece ser que la definición de los miembros estáticos es levemente diferente a la de un miembro común y corriente, porque he necesitado colocar las palabras "const char *" nuevamente, como si las estuviera declarando.

Lo otro que me di cuenta es que no he necesitado solicitar memoria dinámica (no he probado aun, puede que mi aplicación se cierre), lo cual me parece extraño, tenia entendido que todos los punteros deben solicitar memoria dinámica..  C++ es como una nena.  ;D
108  Programación / Programación C/C++ / Re: Símbolos no encontrados para arquitectura x86/x64 en: 23 Abril 2019, 19:52 pm
Tienes razón, se me había pasado eso de solicitar memoria ...  gracias..

El error lo he visto mas en OSX..
109  Programación / Programación C/C++ / Símbolos no encontrados para arquitectura x86/x64 en: 23 Abril 2019, 19:28 pm
Hola!

Estoy trabajando con QT Creator y tengo el siguiente código:

Código
  1.    struct Constants{
  2.  
  3.        static const char * DB_FILE_NAME;
  4.        static const char * DB_FULL_PATH;
  5.        static const char * DB_FULL_PATH_NAME;
  6.  
  7.        Constants();
  8.        ~Constants();
  9.  
  10.    };
  11.  
  12.    Constants::Constants(){
  13.        DB_FILE_NAME = "data.db";
  14.        DB_FULL_PATH = "./";
  15.        DB_FULL_PATH_NAME = "./data.db";
  16.    }
  17.  
  18.    Constants::~Constants(){
  19.        delete DB_FILE_NAME;
  20.        delete DB_FULL_PATH;
  21.        delete DB_FULL_PATH_NAME;
  22.    }
  23.  
  24.  
  25.  

Sin embargo, al compilar, me dice :

Código:
symbol(s) not found for architecture x86_64
linker command failed with exit code 1 (use -v to see invocation)

Definí los valores de las constantes estéticas fuera del structs debido a que tenia entendido que nunca se hacen en la misma declaración... a que puede deberse este error?

gracias.
110  Programación / Programación C/C++ / Re: Duda sobre sintaxis: Un argumento que hace referencia a una funcion... en: 20 Abril 2019, 21:02 pm
Hombre, gracias por las explicaciones. :D
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines