Avatar billede HBP2 Praktikant
27. marts 2011 - 11:49 Der er 1 løsning

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
Avatar billede HBP2 Praktikant
27. marts 2011 - 12:01 #1
glem det, fandt selv fejlen: mem.cc inkluderede ikke mem.h
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester