Solo un programa simple, pero sigo obteniendo este error de compilación. Estoy usando MinGW para el compilador.C error: referencia indefinida a la función, pero está definido
Aquí está el archivo de cabecera, point.h:
//type for a Cartesian point
typedef struct {
double x;
double y;
} Point;
Point create(double x, double y);
Point midpoint(Point p, Point q);
y aquí está point.c:
//This is the implementation of the point type
#include "point.h"
int main() {
return 0;
}
Point create(double x, double y) {
Point p;
p.x = x;
p.y = y;
return p;
}
Point midpoint(Point p, Point q) {
Point mid;
mid.x = (p.x + q.x)/2;
mid.y = (p.y + q.y)/2;
return mid;
}
Y aquí es donde entra en la edición del compilador sigo recibiendo.:
testpoint.c: undefined reference to 'create(double x, double y)'
Mientras está definido en el punto.c.
Este es un archivo separado llamado testpoint.c:
#include "point.h"
#include <assert.h>
#include <stdio.h>
int main() {
double x = 1;
double y = 1;
Point p = create(x, y);
assert(p.x == 1);
return 0;
}
Estoy en una pérdida en cuanto a lo que podría ser el problema.
¿Recibe cualquier otro mensaje? – JaredPar
¿Podría publicar su archivo MAKE? Además, tienes 2 funciones principales definidas, eso no puede ser bueno. – George
Probablemente una redefinición de 'main()' que es el punto de entrada a su programa. Deshazte de uno en 'point.c' – RageD