static lib mit g++

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: static lib mit g++

Beitrag von nufan » Di Aug 05, 2014 10:22 pm

Architekt hat geschrieben:d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/libmingw32.a(main.
o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
https://wiki.libsdl.org/FAQWindows#I_ge ... 4016.27.22
Architekt hat geschrieben:Kann mir jemand erklären was dieser Fehler konkret bedeutet?
Ich hab etwas den Überblick über deinen Code und deine Änderungen verloren. Kannst du das ganze vielleicht in ein Zip packen und hochladen?

Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: static lib mit g++

Beitrag von Architekt » Di Aug 05, 2014 11:30 pm

Natürlich: http://www.file-upload.net/download-933 ... L.zip.html
Das makefile sgl ist für die generierung der SGL.a und das makefile test zum testen. :)

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: static lib mit g++

Beitrag von nufan » Di Aug 05, 2014 11:55 pm

Das ist auf jeden Fall mal nicht gut:

Code: Alles auswählen

#-lopengl32 -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lglew32 
LIB_FLAGS = -lSGL
Wie siehts damit aus?

Code: Alles auswählen

LIB_FLAGS = -lSGL -lopengl32 -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lglew32 
Bzw. wohl noch besser:

Code: Alles auswählen

LIB_FLAGS = -lmingw32 -lSDLmain -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lopengl32 -lglew32 -lSGL -mwindows

Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: static lib mit g++

Beitrag von Architekt » Mi Aug 06, 2014 12:13 am

Das hab ich extra auskommentiert, um zu testen, wieso er nichtmal mit der SGL.a klar kommt. Denn obwohl ich die SGL.a linke, findet er keine Referenzen darauf.

edit:
Hier in was es resultiert:
C:\Users\Besitzer\AppData\Local\Temp\cc8wUwCd.o:main.cpp:(.text+0x0): multiple d
efinition of `main'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/libmingw32.a(main.
o):e:\p\giaw\src\pkg\mingwrt-4.0.3-1-mingw32-src\bld/../mingwrt-4.0.3-1-mingw32-
src/src/libcrt/crt/main.c:42: first defined here
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/libmingw32.a(main.
o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
C:\Users\Besitzer\AppData\Local\Temp\cc8wUwCd.o:main.cpp:(.text+0x60): undefined
reference to `sgl::Window::Window(unsigned short, unsigned short, std::string c
onst&, sgl::Window::Flags)'
C:\Users\Besitzer\AppData\Local\Temp\cc8wUwCd.o:main.cpp:(.text+0x86): undefined
reference to `sgl::Window::~Window()'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\B
esitzer\AppData\Local\Temp\cc8wUwCd.o: bad reloc address 0x0 in section `.ctors'

collect2.exe: error: ld returned 1 exit status
make: *** [compile] Error 1
Durch -lmingw32 und -lSDL2main hat er nun mehrere main Funktionen.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: static lib mit g++

Beitrag von nufan » Mi Aug 06, 2014 12:34 am


Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: static lib mit g++

Beitrag von Architekt » Mi Aug 06, 2014 7:50 am

Jap. Dafür muss ich diesen Abschnitt so ändern:

Code: Alles auswählen

compile:
	$(CC) $(CFLAGS) -o main.exe main.cpp $(LIB_PATH) $(LIB_FLAGS) $(INCLUDE_PATH)
Und erhalte als Ausgabe:
$ make -f test
g++ -std=c++0x -Wall -o main.exe main.cpp -LC:\Users\Besitzer\Documents\SGL\libs
\lib -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lopengl32 -lglew32 -lSGL -mwin
dows -IC:\Users\Besitzer\Documents\SGL\libs\SDL2\x86_64-w64-mingw32\include\SDL2
-IC:\Users\Besitzer\Documents\SGL\libs\SDL2_image\x86_64-w64-mingw32\include\SD
L2 -IC:\Users\Besitzer\Documents\SGL\libs\SDL2_mixer\x86_64-w64-mingw32\include\
SDL2 -IC:\Users\Besitzer\Documents\SGL\libs\SDL2_ttf\x86_64-w64-mingw32\include\
SDL2 -IC:\Users\Besitzer\Documents\SGL\include -IC:\Users\Besitzer\Documents\SGL
\libs\glew\include
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
e): undefined reference to `SDL_WasInit'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
23): undefined reference to `SDL_Init'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
3c): undefined reference to `SDL_Quit'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
50): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5f): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
6e): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
7d): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
8c): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
9b): undefined reference to `glEnable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
aa): undefined reference to `glEnable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
b9): undefined reference to `glEnable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
c8): undefined reference to `glCullFace@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
d7): undefined reference to `glShadeModel@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
ee): undefined reference to `glPolygonMode@8'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
fd): undefined reference to `glEnableClientState@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
10c): undefined reference to `glEnableClientState@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
123): undefined reference to `glHint@8'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
13a): undefined reference to `SDL_GL_SetAttribute'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
14e): undefined reference to `SDL_GL_SetAttribute'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
153): undefined reference to `_imp__glewInit@0'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
29a): undefined reference to `SDL_CreateWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
2af): undefined reference to `SDL_GetError'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
2fc): undefined reference to `SDL_GL_CreateContext'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
311): undefined reference to `SDL_GetError'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
35c): undefined reference to `glGetString@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
36e): undefined reference to `glGetString@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
380): undefined reference to `glGetString@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
475): undefined reference to `SDL_DestroyWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
483): undefined reference to `SDL_GL_DeleteContext'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
4c5): undefined reference to `glMatrixMode@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
4d6): undefined reference to `glLoadMatrixf@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
519): undefined reference to `glClearColor@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
543): undefined reference to `glClear@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
56b): undefined reference to `SDL_HideWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
57b): undefined reference to `SDL_ShowWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
59a): undefined reference to `SDL_EnableScreenSaver'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5a1): undefined reference to `SDL_DisableScreenSaver'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5bd): undefined reference to `SDL_MaximizeWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5d7): undefined reference to `SDL_MinimizeWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5f1): undefined reference to `SDL_RestoreWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
60b): undefined reference to `SDL_RaiseWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
644): undefined reference to `SDL_SetWindowFullscreen'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
67a): undefined reference to `SDL_SetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
6b3): undefined reference to `SDL_SetWindowSize'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
6ea): undefined reference to `SDL_SetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
714): undefined reference to `SDL_SetWindowSize'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
73d): undefined reference to `SDL_GetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
793): undefined reference to `SDL_GetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
7af): undefined reference to `SDL_GetWindowSize'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
81d): undefined reference to `SDL_SetWindowTitle'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
83a): undefined reference to `SDL_GetWindowTitle'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
8fb): undefined reference to `glTexCoordPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
916): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
951): undefined reference to `glColorPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
98b): undefined reference to `glVertexPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
9a9): undefined reference to `glDrawArrays@12'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
9b7): undefined reference to `glLoadMatrixf@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
aa5): undefined reference to `glTexCoordPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
ad6): undefined reference to `glVertexPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
af4): undefined reference to `glDrawArrays@12'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
b02): undefined reference to `glLoadMatrixf@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
b37): undefined reference to `SDL_GL_SwapWindow'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\B
esitzer\Documents\SGL\libs\lib/libSGL.a(Window.o): bad reloc address 0x1b in sec
tion `.text$printf[_printf]'
collect2.exe: error: ld returned 1 exit status
make: *** [compile] Error 1

Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: static lib mit g++

Beitrag von Architekt » Mi Aug 06, 2014 3:07 pm

Wenn ich die $(LIB_FLAGS) vor oder nach $(CFLAGS) packe:

Code: Alles auswählen

$(CC) $(LIB_FLAGS) $(CFLAGS) -o main.exe main.cpp $(LIB_PATH) $(INCLUDE_PATH)
Erhalte ich wieder diese Ausgabe:
C:\Users\Besitzer\AppData\Local\Temp\cciuhDNe.o:main.cpp:(.text+0x60): undefined
reference to `sgl::Window::Window(unsigned short, unsigned short, std::string c
onst&, sgl::Window::Flags)'
C:\Users\Besitzer\AppData\Local\Temp\cciuhDNe.o:main.cpp:(.text+0x86): undefined
reference to `sgl::Window::~Window()'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\B
esitzer\AppData\Local\Temp\cciuhDNe.o: bad reloc address 0x0 in section `.ctors'

d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link
failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
make: *** [compile] Error 1
Es wurden also alle SDL und OpenGL Referenzen gefunden. Aber nicht meine eigenen. Warum nicht?

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: static lib mit g++

Beitrag von nufan » Mi Aug 06, 2014 3:26 pm

Gib mal nur deine eigene Lib ans Ende und lass den Rest (SDL, OpenGl) vor der main.cpp.

Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: static lib mit g++

Beitrag von Architekt » Mi Aug 06, 2014 3:38 pm

Du meinst so?

Code: Alles auswählen

	$(CC) -c main.cpp $(CFLAGS) $(INCLUDE_PATH)
	$(CC) $(LIB_FLAGS) -o main.exe main.o $(CFLAGS) $(LIB_PATH) -lSGL
mit

Code: Alles auswählen

LIB_PATH = -LC:\Users\Besitzer\Documents\SGL\libs\lib
LIB_FLAGS = -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lopengl32 -lglew32 -mwindows
Das führt auch wieder zum Ergebnis:
$ make -f test
g++ -c main.cpp -std=c++0x -Wall -IC:\Users\Besitzer\Documents\SGL\libs\SDL2\x86
_64-w64-mingw32\include\SDL2 -IC:\Users\Besitzer\Documents\SGL\libs\SDL2_image\x
86_64-w64-mingw32\include\SDL2 -IC:\Users\Besitzer\Documents\SGL\libs\SDL2_mixer
\x86_64-w64-mingw32\include\SDL2 -IC:\Users\Besitzer\Documents\SGL\libs\SDL2_ttf
\x86_64-w64-mingw32\include\SDL2 -IC:\Users\Besitzer\Documents\SGL\include -IC:\
Users\Besitzer\Documents\SGL\libs\glew\include
g++ -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lopengl32 -lglew32 -mwindows -
o main.exe main.o -std=c++0x -Wall -LC:\Users\Besitzer\Documents\SGL\libs\lib -l
SGL
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
e): undefined reference to `SDL_WasInit'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
23): undefined reference to `SDL_Init'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
3c): undefined reference to `SDL_Quit'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
50): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5f): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
6e): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
7d): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
8c): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
9b): undefined reference to `glEnable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
aa): undefined reference to `glEnable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
b9): undefined reference to `glEnable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
c8): undefined reference to `glCullFace@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
d7): undefined reference to `glShadeModel@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
ee): undefined reference to `glPolygonMode@8'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
fd): undefined reference to `glEnableClientState@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
10c): undefined reference to `glEnableClientState@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
123): undefined reference to `glHint@8'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
13a): undefined reference to `SDL_GL_SetAttribute'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
14e): undefined reference to `SDL_GL_SetAttribute'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
153): undefined reference to `_imp__glewInit@0'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
29a): undefined reference to `SDL_CreateWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
2af): undefined reference to `SDL_GetError'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
2fc): undefined reference to `SDL_GL_CreateContext'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
311): undefined reference to `SDL_GetError'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
35c): undefined reference to `glGetString@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
36e): undefined reference to `glGetString@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
380): undefined reference to `glGetString@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
475): undefined reference to `SDL_DestroyWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
483): undefined reference to `SDL_GL_DeleteContext'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
4c5): undefined reference to `glMatrixMode@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
4d6): undefined reference to `glLoadMatrixf@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
519): undefined reference to `glClearColor@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
543): undefined reference to `glClear@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
56b): undefined reference to `SDL_HideWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
57b): undefined reference to `SDL_ShowWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
59a): undefined reference to `SDL_EnableScreenSaver'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5a1): undefined reference to `SDL_DisableScreenSaver'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5bd): undefined reference to `SDL_MaximizeWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5d7): undefined reference to `SDL_MinimizeWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
5f1): undefined reference to `SDL_RestoreWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
60b): undefined reference to `SDL_RaiseWindow'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
644): undefined reference to `SDL_SetWindowFullscreen'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
67a): undefined reference to `SDL_SetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
6b3): undefined reference to `SDL_SetWindowSize'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
6ea): undefined reference to `SDL_SetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
714): undefined reference to `SDL_SetWindowSize'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
73d): undefined reference to `SDL_GetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
793): undefined reference to `SDL_GetWindowPosition'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
7af): undefined reference to `SDL_GetWindowSize'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
81d): undefined reference to `SDL_SetWindowTitle'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
83a): undefined reference to `SDL_GetWindowTitle'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
8fb): undefined reference to `glTexCoordPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
916): undefined reference to `glDisable@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
951): undefined reference to `glColorPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
98b): undefined reference to `glVertexPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
9a9): undefined reference to `glDrawArrays@12'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
9b7): undefined reference to `glLoadMatrixf@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
aa5): undefined reference to `glTexCoordPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
ad6): undefined reference to `glVertexPointer@16'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
af4): undefined reference to `glDrawArrays@12'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
b02): undefined reference to `glLoadMatrixf@4'
C:\Users\Besitzer\Documents\SGL\libs\lib/libSGL.a(Window.o):Window.cpp:(.text+0x
b37): undefined reference to `SDL_GL_SwapWindow'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\B
esitzer\Documents\SGL\libs\lib/libSGL.a(Window.o): bad reloc address 0x1b in sec
tion `.text$printf[_printf]'
collect2.exe: error: ld returned 1 exit status
make: *** [compile] Error 1

Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: static lib mit g++

Beitrag von Architekt » Mi Aug 06, 2014 3:39 pm

Hier btw nochmal meine beiden makefiles.
SGL:
http://codepad.org/c3xxobWq
test:
http://codepad.org/lcvZBFjc

Mir fällt nichts auf, was falsch sein könnte.

edit:
Und was mir gerade komisches auffällt.
Das hier (ohne -lSGL):

Code: Alles auswählen

	$(CC) -o main.exe main.o $(CFLAGS) $(LIB_PATH) $(LIB_FLAGS)
Produziert diese kurze Fehlermeldung:
main.o:main.cpp:(.text+0x60): undefined reference to `sgl::Window::Window(unsign
ed short, unsigned short, std::string const&, sgl::Window::Flags)'
main.o:main.cpp:(.text+0x86): undefined reference to `sgl::Window::~Window()'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: main.o: ba
d reloc address 0x0 in section `.ctors'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link
failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
make: *** [compile] Error 1
Aber gebe ich -lSGL mit an, bekomme ich diese ganzen undefinierten Referenzen, wie in zwie Post zuvor angegeben. Das ist doch seltsam, oder?

Antworten