AYUDA POR FAVOR, ERROR AL COMPILAR!!!!!!
Hola! A ver si alguien podeis ayudarme porque estoy que me subo por las paredes, ;-), estoy intentando compilar mi primera clase en C++, y me da el siguiente error al compilar, ompilador: Default compiler
Ejecutando g++.exe...
g++.exe "C:is13aritmat.cpp" -o "C:is13aritmat.exe" -I"C:Dev-Cppincludec++" -I"C:Dev-Cppincludec++mingw32" -I"C:Dev-Cppincludec++backward" -I"C:Dev-Cppinclude" -L"C:Dev-Cpplib"
In file included from C:/is13/aritmat.cpp:5:
C:/is13/matriz.h:78:7: warning: no newline at end of file
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x731):aritmat.cpp: undefined reference to `Matriz::IniciaMat(int, int, int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x744):aritmat.cpp: undefined reference to `Matriz::IniciaMat(int, int, int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x756):aritmat.cpp: undefined reference to `Matriz::ModificaCapacidadMat(int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x768):aritmat.cpp: undefined reference to `Matriz::ModificaCapacidadMat(int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x77b):aritmat.cpp: undefined reference to `Matriz::IniciaMat(int, int, int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x78d):aritmat.cpp: undefined reference to `Matriz::ModificaCapacidadMat(int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x909):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x932):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x988):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x9de):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0xa34):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text$_ZN6MatrizC1Eii+0x142):aritmat.cpp: undefined reference to `Vector::ModificaCapacidad(int)'
Ejecución Terminada
Esto si lo ejecuto con el Bloodshed C++ para win, he intentado compilar en Visual C con el siguiente error:
Linking...
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Matriz::MostrarMat(class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?MostrarMat@Matriz@@QBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Matriz::ModificaCapacidadMat(int)" (?ModificaCapacidadMat@Matriz@@QAEXH@Z)
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Matriz::IniciaMat(int,int,int)" (?IniciaMat@Matriz@@QAEXHHH@Z)
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Vector::ModificaCapacidad(int)" (?ModificaCapacidad@Vector@@QAEXH@Z)
Debug/aritmat.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.
He intentado copiar los .h en los directorios del c++, del visual , y nada me sigue dando el mismo error, estoy bloqueado y no se que hacer, a ver si alguien me puede orientar un poco por favor!!
Ejecutando g++.exe...
g++.exe "C:is13aritmat.cpp" -o "C:is13aritmat.exe" -I"C:Dev-Cppincludec++" -I"C:Dev-Cppincludec++mingw32" -I"C:Dev-Cppincludec++backward" -I"C:Dev-Cppinclude" -L"C:Dev-Cpplib"
In file included from C:/is13/aritmat.cpp:5:
C:/is13/matriz.h:78:7: warning: no newline at end of file
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x731):aritmat.cpp: undefined reference to `Matriz::IniciaMat(int, int, int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x744):aritmat.cpp: undefined reference to `Matriz::IniciaMat(int, int, int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x756):aritmat.cpp: undefined reference to `Matriz::ModificaCapacidadMat(int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x768):aritmat.cpp: undefined reference to `Matriz::ModificaCapacidadMat(int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x77b):aritmat.cpp: undefined reference to `Matriz::IniciaMat(int, int, int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x78d):aritmat.cpp: undefined reference to `Matriz::ModificaCapacidadMat(int)'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x909):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x932):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x988):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0x9de):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text+0xa34):aritmat.cpp: undefined reference to `Matriz::MostrarMat(std::ostream&) const'
C:DOCUME~1ADMINI~1.000CONFIG~1Temp/ccYHaaaa.o(.text$_ZN6MatrizC1Eii+0x142):aritmat.cpp: undefined reference to `Vector::ModificaCapacidad(int)'
Ejecución Terminada
Esto si lo ejecuto con el Bloodshed C++ para win, he intentado compilar en Visual C con el siguiente error:
Linking...
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Matriz::MostrarMat(class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?MostrarMat@Matriz@@QBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Matriz::ModificaCapacidadMat(int)" (?ModificaCapacidadMat@Matriz@@QAEXH@Z)
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Matriz::IniciaMat(int,int,int)" (?IniciaMat@Matriz@@QAEXHHH@Z)
aritmat.obj : error LNK2001: unresolved external symbol "public: void __thiscall Vector::ModificaCapacidad(int)" (?ModificaCapacidad@Vector@@QAEXH@Z)
Debug/aritmat.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.
He intentado copiar los .h en los directorios del c++, del visual , y nada me sigue dando el mismo error, estoy bloqueado y no se que hacer, a ver si alguien me puede orientar un poco por favor!!
Tu error es de linkado. Tu codigo fuente está bien, ya que compila.
Además del .h, necesitas el código de la clase Matriz(puede ser por ejemplo en un Matriz.cpp que te hayas hecho tú o en una librería Matriz.lib o Matriz.dll.
Si es el primer caso, debes compilar también el .cpp en la línea de compilado.
Si es el segundo caso, debes poner dos opciones más al compilar:
-L<path_donde_esta_el_dll_o_lib> -lMatriz
(la segunda opción es L minúscula).
Se bueno.
Además del .h, necesitas el código de la clase Matriz(puede ser por ejemplo en un Matriz.cpp que te hayas hecho tú o en una librería Matriz.lib o Matriz.dll.
Si es el primer caso, debes compilar también el .cpp en la línea de compilado.
Si es el segundo caso, debes poner dos opciones más al compilar:
-L<path_donde_esta_el_dll_o_lib> -lMatriz
(la segunda opción es L minúscula).
Se bueno.
