SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: almeria_new en Miércoles 9 de Enero de 2008, 11:28
-
Hola a todos!
Lo primero presentarme y daros gracias por la ayuda que ofreceis a individuos como yo ;)
He googleado buscando este error y la mayoría de veces aparece al querer compilar alguna descarga o instalar algun programa y se comenta que es cosa del gcc.
El caso es que estoy intentando realizar una aplicación que usa conjuntamente ficheros de código C y C++. Los ficheros de C los puedo modificar a mis anchas, pero los de C++ usan algunas librerias y funciones que se me ha prohibido modificar.
Este error citado me aparece siempre relacionado a las llamadas que se hacen desde la Clase de C++ a métodos de C. Si no os importa, pongo la salida de consola:
host:~/Desktop/gop1 # make
gcc -c -I/usr/cxsc/include new_lst1_ari.cpp
gcc -c -I/usr/cxsc/include new_gop1.cpp
gcc new_lst1_ari.o new_gop1.o avl.o gop1_ex.cpp -o salida -I/usr/cxsc/include -L/usr/cxsc/lib -lcxsc
new_lst1_ari.o: In function `ArbolToVector(_nodo*, cxsc::ivector&, cxsc::intvector&)':
new_lst1_ari.cpp:(.text+0x5f7): undefined reference to `NumeroNodos(_nodo*, int*)'
new_gop1.o: In function `GlobalOptimize(DerivType (*)(DerivType const&), cxsc::interval, cxsc::real, _nodo*&, int&, cxsc::interval&)':
new_gop1.cpp:(.text+0x3ca): undefined reference to `NumeroNodos(_nodo*, int*)'
new_gop1.cpp:(.text+0x1515): undefined reference to `Insertar(_nodo**, double, double, double)'
new_gop1.cpp:(.text+0x1649): undefined reference to `Podar(_nodo**)'
new_gop1.cpp:(.text+0x16eb): undefined reference to `Insertar(_nodo**, double, double, double)'
new_gop1.o: In function `New_AllGOp1(DerivType (*)(DerivType const&), cxsc::interval, cxsc::real, cxsc::ivector&, cxsc::intvector&, int&, cxsc::interval&, int&, int)':
new_gop1.cpp:(.text+0x1b1b): undefined reference to `Podar(_nodo**)' collect2: ld returned 1 exit status
He puesto en negrita los metodos de C que son llamados desde la clase de C++. Y que creo que dan el citado error.
Si necesitais algún dato más nada mas pedirlo.
Gracias!!!
-
¿Estas usando extern "C" delante de las declaracion de las funciones?
-
Creo que esta es una posible solución, almenos me compila ok
En los documentos hpp puse esto:
#include <cstdio>
extern "C" {
#include "avl.h"
}
Gracias!