Avatar billede brhino Nybegynder
19. maj 2003 - 17:52 Der er 10 kommentarer og
1 løsning

Linker problemmer

Jeg har et linker problem, som giver mig grå hår i hovedet !!! :-)

Her loggen :

Kompiler: Default compiler
Building Makefile: "C:\Dev-Cpp\Examples\Window Resource\Makefile.win"
Eksekverer  make...
make.exe -f "C:\Dev-Cpp\Examples\Window Resource\Makefile.win" all
gcc.exe Resources.o Resources_private.res -o "Resources.exe" -L"C:/Dev-Cpp/lib" -mwindows

Resources.o(.eh_frame+0x11):Resources.cpp: undefined reference to `__gxx_personality_v0'

make.exe: *** [Resources.exe] Error 1

Eksekvering afbrudt

og her er fejlmeddelelsen :


[Linker error] undefined reference to `__gxx_personality_v0'



Hvad i alverden betyder det ??? Og hvor er fejlen ??? Jeg mener selv at jeg har kontrolleret mit program grundigt, og jeg fik jo ingen fejlmelding ved compilering !?!?

Jeg bruger DEV-C++ 4.9.8.0 og hvad `__gxx_personality_v0' er har jeg ingen anelse om. Det er ikke noget i mit program !!

Håber nogen kan hjælpe ellers kan jeg ikke få 'resources' på min applikation :-(



BRhino
Avatar billede arne_v Ekspert
19. maj 2003 - 18:23 #1
Check om det er et C++ projekt.

Det lyder som en fejl der kunen opstå med C++ kode i et C projekt.
Avatar billede brhino Nybegynder
19. maj 2003 - 18:30 #2
Det er et C++ projekt !!! Programmet virker indtil jeg putter resources på ... Jeg er lost !!!
Avatar billede soreno Praktikant
19. maj 2003 - 18:34 #3
Prøv lige at post din makefile (du kan få genereret en i menu'en..)
Avatar billede arne_v Ekspert
19. maj 2003 - 18:35 #4
Hm.

Prøv at tilføj -lstdc++ til link options.
Avatar billede brhino Nybegynder
19. maj 2003 - 18:38 #5
# Project: Resources
# Makefile created by Dev-C++ 4.9.8.0

CPP  = g++.exe
CC  = gcc.exe
WINDRES = windres.exe
RES  = Resources_private.res
OBJ  = Resources.o $(RES)
LINKOBJ  = Resources.o $(RES)
LIBS =  -L"C:/Dev-Cpp/lib" -mwindows
INCS =  -I"C:/Dev-Cpp/include"
CXXINCS =  -I"C:/Dev-Cpp/include/c++"  -I"C:/Dev-Cpp/include/c++/mingw32"  -I"C:/Dev-Cpp/include/c++/backward"  -I"C:/Dev-Cpp/include"
BIN  = Resources.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)

.PHONY: all all-before all-after clean clean-custom

all: all-before Resources.exe all-after


clean: clean-custom
    rm -f $(OBJ) $(BIN)

$(BIN): $(LINKOBJ)
    $(CC) $(LINKOBJ) -o "Resources.exe" $(LIBS)

Resources.o: Resources.cpp
    $(CC) -c Resources.cpp -o Resources.o $(CFLAGS)

Resources_private.res: Resources_private.rc Resources.rc
    $(WINDRES) -i Resources_private.rc -I rc -o Resources_private.res -O coff
Avatar billede soreno Praktikant
19. maj 2003 - 18:40 #6
For at compilere resource filer skal du gøre sådan:
windres --use-temp-file -I rc -O coff -i resource.rc -o resource.o

og så linke resource.o med din exe fil.

Jeg plejer at bruge følgende skabelon til at lave makefiler:

# Compiler
CC=g++

# Parameters given to the compiler
FLAGS=-s -mwindows

# Output filename
OUTPUT="main.exe"

# Source files
SRCS="main.cpp"
SRCS_RES="resource.rc"

# Output object files
OBJS="main.o"
OBJS_RES="resource.o"

# targets
all:
    windres --use-temp-file -I rc -O coff -i $(SRCS_RES) -o $(OBJS_RES)
    $(CC) -c $(SRCS) $(FLAGS)
    $(CC) -o $(OUTPUT) $(OBJS) $(OBJS_RES) $(FLAGS)

clean:
    del $(OUTPUT) $(OBJS) $(OBJS_RES)
Avatar billede arne_v Ekspert
19. maj 2003 - 18:41 #7
Øh.

Der står altså $(CC) som er gcc.exe !

Den skal bruge g++.exe !
Avatar billede brhino Nybegynder
19. maj 2003 - 19:12 #8
Jeg ved ikke hvad fejlen var ... !?!? Men jeg startede et nyt projekt og det virker nu !?!?! Sært, kan compileren ha' troet a mit C++ projekt var et C projekt ??? Er det ikke også noget med at DEV-C++ 4.9.8.0 er en beta version ???
Avatar billede arne_v Ekspert
19. maj 2003 - 19:17 #9
Det lyder meget sandsyneligt at det er C versus C++ der er forskellen. Man
angiver det når man opretter projektet. Og hvis man vælger C så kan man kalde
sine filer for .cpp, include C++ header filer men det vil stadig stå som
et C projekt og blive linket som sådan => man får link fejl.
Avatar billede arne_v Ekspert
11. juli 2003 - 19:33 #10
Tid at lukke spørgsmålet ?
Avatar billede arne_v Ekspert
11. juli 2003 - 19:34 #11
Et svar såfremt du skulle finde mine kommentarer nyttige.

(husk at bede soreno lægge et svar hvis hans kunne bruges !)
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
Kategori
Kurser inden for grundlæggende programmering

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