linking af c++
Her på det sidste er jeg er vist begyndt at blive dum. Jeg skal kompile/linke et mindre program i c++ v.h.a. g++ og normalt er det ikke noget problem, men nu har jeg altså af forskillge grunde valgt at skrive makefilen fra bunden istedetfor at genbruge en gammel makefile - og jeg kan ikke få det til virke, den forbandede "undefined reference to..." fejl dukker op.Jeg har reduceret det til det absolut simplest eksempel. Kompilering går fint, men linking fejler med:
main.cc:(.text+0x12): undefined reference to `mem_init'
Nogen der kan sige hvad der er galt:
Makefile:
CC = g++
INCLUDES = -I. -I..
CPPFLAGS += $(INCLUDES)
LIBS =
OBJECTS = mem.o main.o
all: test
test: $(OBJECTS)
$(CC) $(OBJECTS) -o test $(LIBS)
main.o: main.cc mem.h
mem.o: mem.cc
main.cc:
#include <stdio.h>
#include "mem.h"
int main(int argc, char *argv[]) {
mem_init();
return 0;
}
mem.cc:
#include <stdio.h>
void mem_init() {
}
mem.h:
#ifndef __MEM_H__
#define __MEM_H__
#ifdef __cplusplus
extern "C" {
#endif
void mem_init();
#ifdef __cplusplus
}
#endif
#endif