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)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20
111  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
112  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...
113  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
114  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....

115  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
116  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..
117  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.
118  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
119  Programación / Programación C/C++ / Re: Duda sobre sintaxis: Un argumento que hace referencia a una funcion... en: 17 Abril 2019, 21:56 pm
Se ve un tanto complejo pero voy entendiendo.

Bajo que circunstancias se puede usar puntero a función y método miembro?

Gracias
120  Programación / Programación C/C++ / Re: Duda sobre sintaxis: Un argumento que hace referencia a una funcion... en: 17 Abril 2019, 16:21 pm
Ok, entiendo!..gracias..
Entonces las funciones también estarían ocupando un espacio en la memoria?
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines