[C++] OpenGL 3.X/4.X lernen (aber Richtig!)
-
Heyho,
danke für die Antworten.
Mit Nehe hatte ich schonmal angefangen, allerdings bin ich bei meinen Recherchen immer wieder darauf gestoßen, dass es leider veraltet sei.Bei meinen Recherchen bin ich allerdings auch immer wieder auf das "Red Book" gestoßen, was wohl eine sehr sehr gutes Lehrwerk sein soll.
Und die 30€ haben mir jetzt auch nicht weh getan ^^.Des Weiteren kann ich mir das wohl abschminken OpenGL Objekt-Orientiert zu programmieren, es sei denn ich schreibe vorher selbst einen Wrapper, oder arbeite mich in die schlecht dokumentierten halb fertigen bereits vorhanden Wrapper ein.
(Ich frag mich warum dann alle groß rum posaunen, dass sie OpenGL in c++ entwickeln.. das bisschen was die da anders machen als es in C wäre is ja nu wirklich nich der Rede wert ^^)Ich würde zwar sehr gerne OpenGL von ganz unten an lernen, aber da ihr mir da von abratet und die ganzen tuts auch auf freeglut oder der gleichen aufsetzten werd ich mich mal damit zufrieden geben damit zu arbeiten ^^.
Muss ja nur in der Bachelor-Arbeit gut verkaufe können warum ich das getan habe.
Naja wie dem auch sei.
Ich hab mir jetzt das Redbook (8te auflage, OpenGL 4.3) als lernwerk besorgt und scheitere natürlich direkt am ersten Beispiel.
Und wie sollte es auch anders sein, ich scheitere am LinkerVllt könnt ihr mir da ja auch weiter helfen.
Quelltext:
#include <iostream> //using namespace std; #include "vgl.h" #include "LoadShaders.h" enum VAO_IDs { Triangles, NumVAOs }; enum Buffer_IDs { ArrayBuffer, NumBuffers }; enum Attrib_IDs { vPosition = 0 }; GLuint VAOs[NumVAOs]; GLuint Buffers[NumBuffers]; const GLuint NumVertices = 6; void init(void) { glGenVertexArrays(NumVAOs, VAOs); glBindVertexArray(VAOs[Triangles]); GLfloat vertices[NumVertices][2] = { { -0.90f, -0.90f }, // Triangle 1 { 0.85f, -0.90f }, { -0.90f, 0.85f }, { 0.90f, -0.85f }, // Triangle 2 { 0.90f, 0.90f }, { -0.85f, 0.90f } }; glGenBuffers(NumBuffers, Buffers); glBindBuffer(GL_ARRAY_BUFFER, Buffers[ArrayBuffer]); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); ShaderInfo shaders[] = { { GL_VERTEX_SHADER, "triangles.vert" }, { GL_FRAGMENT_SHADER, "triangles.frag" }, { GL_NONE, NULL } }; GLuint program = LoadShaders(shaders); glUseProgram(program); glVertexAttribPointer(vPosition, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(vPosition); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); glBindVertexArray(VAOs[Triangles]); glDrawArrays(GL_TRIANGLES, 0, NumVertices); glFlush(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(512,512); glutInitContextVersion(4,3); glutInitContextProfile(GLUT_CORE_PROFILE); glutCreateWindow(argv[0]); if(glewInit()) { std::cerr << "Unable to initialize GLEW... exiting" << std::endl; exit(EXIT_FAILURE); } init(); glutDisplayFunc(display); glutMainLoop(); return 0; }
Fehlermeldung:
1>------ Erstellen gestartet: Projekt: Redbook_ex1_window_and_triangles, Konfiguration: Debug Win32 ------ 1> triangles.cpp 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __calloc_dbg ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(invarg.obj) : error LNK2005: __invoke_watson ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(crt0dat.obj) : error LNK2005: __amsg_exit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(crt0dat.obj) : error LNK2005: __cexit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(crt0dat.obj) : error LNK2005: __exit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(crt0dat.obj) : error LNK2005: __initterm_e ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(crt0dat.obj) : error LNK2005: _exit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(fpinit.obj) : error LNK2005: __fltused ist bereits in a previous module definiert. 1>libcmtd.lib(fpinit.obj) : error LNK2005: __ldused ist bereits in a previous module definiert. 1>libcmtd.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(winapisupp.obj) : error LNK2005: ___crtSetUnhandledExceptionFilter ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(winapisupp.obj) : error LNK2005: ___crtTerminateProcess ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(winapisupp.obj) : error LNK2005: ___crtUnhandledException ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(crt0init.obj) : error LNK2005: ___xi_a ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. 1>libcmtd.lib(crt0init.obj) : error LNK2005: ___xi_z ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. 1>libcmtd.lib(crt0init.obj) : error LNK2005: ___xc_a ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. 1>libcmtd.lib(crt0init.obj) : error LNK2005: ___xc_z ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. 1>libcmtd.lib(wsetloca.obj) : error LNK2005: __configthreadlocale ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(mlock.obj) : error LNK2005: __lock ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(mlock.obj) : error LNK2005: __unlock ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(winxfltr.obj) : error LNK2005: __XcptFilter ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(errmode.obj) : error LNK2005: ___set_app_type ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>libcmtd.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>LINK : warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. 1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: Standardbibliothek "libcmtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
Bisheriges vorgehen.
Ich habe mir die header-files und die libs von der Homepage besorgt
und über Rechtsklick->eigenschaften->Zusätzliche Include bzw Bib-Verzeichnisse ins projekt eingebunden.Ich habe die LoadShaders.cpp in mein Projekt rein kopiert und compeliere sie mit. (Eine vgl.cpp gibts nich Oo)
Ich habe die /NODEFAULTLIB option ausprobiert
und ich habe unter Rechtsklick->Eigenschaften->C/C++->Codegenerierung alle Laufzeitbibliotheken ausprobiert.Immer krieg ich eine (ähnliche) Fehlermeldung.
Ich Benutze VisualStudio 2012 (32Bit) und habe ein 64Bit Windows 7 Betriebssystem. (Ich hoffe das es nich daran liegt Oo)
Vllt kann mir ja einer Helfen
Gruß
Jango
-
Natürlich kann man mit OpenGL OO programmieren!
Du wirst noch bald genug merken, dass Klassen ei.em viel Arbeit abnehmen.
Und Glut und OpenGL machen verschiedene Dinge.
Die Sachen, die Glut macht, kannste nicht mit OpenGl machen.
Bei deinem Problem kan. ich dir leider nicht helfen. Google schon gefragt?
-
Ja google hab ich schon gefragt...
dadurch kam ich auf
"Ich habe die /NODEFAULTLIB option ausprobiert
und ich habe unter Rechtsklick->Eigenschaften->C/C++->Codegenerierung alle Laufzeitbibliotheken ausprobiert. "aller anderen Lösungen waren für mich nicht großartig Anwendbar, da die sich auf Fehler im Code beziehen.
Die sind für mich ja nicht großartig nachvollziehbar, is ja nich meinerUnd ich denke auch nicht, dass das Redbook fehlerhaften Code veröffentlicht ^^
Dafür is der ruf zu gutGruß
Jango
-
Nimm einfach SFML fürs Fenster.
Dann kannst immer noch arisches OpenGL programmieren.
-
1>------ Erstellen gestartet: Projekt: Redbook_ex1_window_and_triangles, Konfiguration: Debug Win32 ------ 1> triangles.cpp ... 1>libcmtd.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. 1>LINK : warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. 1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: Standardbibliothek "libcmtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
Diese hübschen Fehler bekommt man, wenn man in MSVC ein Programm mit einer anderen Standard-Bibliothek linken will als welche die weiteren Bibliotheken nutzen. Dadurch entsteht natürlich ein Namenskonflikt, weil mehrere Funktionen den selben Namen, allerdings nicht die selbe Adresse, teilen. Das Anpassen der Codegenerierung hätte dieses Problem eigentlich lösen sollen...
-
Heyho,
also wenn ich das Umstelle ändern sich die Fehlermeldungen schon nen bisl,
aber ich behalte Linker-Fehler.(Da ich grad in der Uni bin diesmal Windows 8 (64bit) PC immernoch VS2012 (32bit))
Multithreaded-Debug-DLL [/MDd]
Fehler 1 error LNK2005: __CrtSetCheckCount ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbgheap.obj) OpenGL_test Fehler 2 error LNK2005: __calloc_dbg ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbgheap.obj) OpenGL_test Fehler 3 error LNK2005: __invoke_watson ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(invarg.obj) OpenGL_test Fehler 4 error LNK2005: __amsg_exit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 5 error LNK2005: __cexit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 6 error LNK2005: __exit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 7 error LNK2005: __initterm_e ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 8 error LNK2005: _exit ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 9 error LNK2005: __fltused ist bereits in a previous module definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(fpinit.obj) OpenGL_test Fehler 10 error LNK2005: __ldused ist bereits in a previous module definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(fpinit.obj) OpenGL_test Fehler 11 error LNK2005: __crt_debugger_hook ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbghook.obj) OpenGL_test Fehler 12 error LNK2005: ___crtSetUnhandledExceptionFilter ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winapisupp.obj) OpenGL_test Fehler 13 error LNK2005: ___crtTerminateProcess ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winapisupp.obj) OpenGL_test Fehler 14 error LNK2005: ___crtUnhandledException ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winapisupp.obj) OpenGL_test Fehler 15 error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(hooks.obj) OpenGL_test Fehler 16 error LNK2005: ___xi_a ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 17 error LNK2005: ___xi_z ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 18 error LNK2005: ___xc_a ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 19 error LNK2005: ___xc_z ist bereits in MSVCRTD.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 20 error LNK2005: __configthreadlocale ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(wsetloca.obj) OpenGL_test Fehler 21 error LNK2005: __lock ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(mlock.obj) OpenGL_test Fehler 22 error LNK2005: __unlock ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(mlock.obj) OpenGL_test Fehler 23 error LNK2005: __XcptFilter ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winxfltr.obj) OpenGL_test Fehler 24 error LNK2005: ___set_app_type ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(errmode.obj) OpenGL_test Fehler 25 error LNK2005: __CrtDbgReportW ist bereits in MSVCRTD.lib(MSVCR110D.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbgrptw.obj) OpenGL_test Warnung 26 warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\LINK OpenGL_test Warnung 27 warning LNK4098: Standardbibliothek "libcmtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\MSVCRTD.lib(cinitexe.obj) OpenGL_test Fehler 28 error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden. c:\users\jango\documents\visual studio 2012\Projects\OpenGL_test\Debug\OpenGL_test.exe 1 1 OpenGL_test
Multithreaded-DLL [/MD]
Fehler 1 error LNK2005: __invoke_watson ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(invarg.obj) OpenGL_test Fehler 2 error LNK2005: __amsg_exit ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 3 error LNK2005: __cexit ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 4 error LNK2005: __exit ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 5 error LNK2005: __initterm_e ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 6 error LNK2005: _exit ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0dat.obj) OpenGL_test Fehler 7 error LNK2005: __fltused ist bereits in a previous module definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(fpinit.obj) OpenGL_test Fehler 8 error LNK2005: __ldused ist bereits in a previous module definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(fpinit.obj) OpenGL_test Fehler 9 error LNK2005: __crt_debugger_hook ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbghook.obj) OpenGL_test Fehler 10 error LNK2005: ___crtSetUnhandledExceptionFilter ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winapisupp.obj) OpenGL_test Fehler 11 error LNK2005: ___crtTerminateProcess ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winapisupp.obj) OpenGL_test Fehler 12 error LNK2005: ___crtUnhandledException ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winapisupp.obj) OpenGL_test Fehler 13 error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(hooks.obj) OpenGL_test Fehler 14 error LNK2005: ___xi_a ist bereits in MSVCRT.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 15 error LNK2005: ___xi_z ist bereits in MSVCRT.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 16 error LNK2005: ___xc_a ist bereits in MSVCRT.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 17 error LNK2005: ___xc_z ist bereits in MSVCRT.lib(cinitexe.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(crt0init.obj) OpenGL_test Fehler 18 error LNK2005: __configthreadlocale ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(wsetloca.obj) OpenGL_test Fehler 19 error LNK2005: __lock ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(mlock.obj) OpenGL_test Fehler 20 error LNK2005: __unlock ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(mlock.obj) OpenGL_test Fehler 21 error LNK2005: __XcptFilter ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(winxfltr.obj) OpenGL_test Fehler 22 error LNK2005: ___set_app_type ist bereits in MSVCRT.lib(MSVCR110.dll) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(errmode.obj) OpenGL_test Warnung 23 warning LNK4098: Standardbibliothek "MSVCRT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\LINK OpenGL_test Warnung 24 warning LNK4098: Standardbibliothek "libcmtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\MSVCRT.lib(cinitexe.obj) OpenGL_test Warnung 25 warning LNK4098: Standardbibliothek "msvcrtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\MSVCRT.lib(cinitexe.obj) OpenGL_test Fehler 26 error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden. c:\users\jango\documents\visual studio 2012\Projects\OpenGL_test\Debug\OpenGL_test.exe OpenGL_test
Multithreaded-Debug [/MTd]
Fehler 1 error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) ist bereits in LIBCMTD.lib(typinfo.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\msvcrtd.lib(ti_inst.obj) OpenGL_test Fehler 2 error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) ist bereits in LIBCMTD.lib(typinfo.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\msvcrtd.lib(ti_inst.obj) OpenGL_test Warnung 3 warning LNK4098: Standardbibliothek "msvcrtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\LIBCMTD.lib(crt0init.obj) OpenGL_test Fehler 4 error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden. c:\users\jango\documents\visual studio 2012\Projects\OpenGL_test\Debug\OpenGL_test.exe 1 1 OpenGL_test
Multithreaded [/MT]
Fehler 1 error LNK2005: __heap_alloc ist bereits in LIBCMT.lib(malloc.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbgheap.obj) OpenGL_test Fehler 2 error LNK2005: __msize ist bereits in LIBCMT.lib(msize.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbgheap.obj) OpenGL_test Fehler 3 error LNK2005: __recalloc ist bereits in LIBCMT.lib(recalloc.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbgheap.obj) OpenGL_test Fehler 4 error LNK2005: __isctype ist bereits in LIBCMT.lib(isctype.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(isctype.obj) OpenGL_test Fehler 5 error LNK2005: __isctype_l ist bereits in LIBCMT.lib(isctype.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(isctype.obj) OpenGL_test Fehler 6 error LNK2005: __crt_debugger_hook ist bereits in LIBCMT.lib(dbghook.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\libcmtd.lib(dbghook.obj) OpenGL_test Fehler 7 error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) ist bereits in LIBCMT.lib(typinfo.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\msvcrtd.lib(ti_inst.obj) OpenGL_test Fehler 8 error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) ist bereits in LIBCMT.lib(typinfo.obj) definiert. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\msvcrtd.lib(ti_inst.obj) OpenGL_test Warnung 9 warning LNK4098: Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\LINK OpenGL_test Warnung 10 warning LNK4098: Standardbibliothek "libcmtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\LIBCMT.lib(crt0init.obj) OpenGL_test Warnung 11 warning LNK4098: Standardbibliothek "msvcrtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. c:\Users\Jango\documents\visual studio 2012\Projects\OpenGL_test\OpenGL_test\LIBCMT.lib(crt0init.obj) OpenGL_test Fehler 12 error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden. c:\users\jango\documents\visual studio 2012\Projects\OpenGL_test\Debug\OpenGL_test.exe 1 1 OpenGL_test
Und das wars an Auswahlmöglichkeiten
Gruß
Jango
-
Die Antwort bleibt die selbe:
Youka schrieb:
...in MSVC ein Programm mit einer anderen Standard-Bibliothek linken will als welche die weiteren Bibliotheken nutzen.
Vergleiche die Codegenerierung mit der deiner verlinkten Bibliotheken.
-
Ist doch nur eine Bachelor-Arbeit, da musst du doch, wie beim Diplom, nicht mal selbst denken, sondern nur bekanntes in guter Form zusammen klatschen.
Ich habe bei zwei Arbeiten mit geholfen und es ist ein Witz für was man in Deutschland einen Titel bekommt.
-
Heyho,
Wie komme ich dann an die Information welche codegenerierung meine verlinkten libs benutzen?
Gruß aus
-
Heyho,
ich hab das Problem jetzt soweit lösen können, indem ich nochmal neue Versionen von freeglut und glew ausm netz gezogen hab, und mit den Versionen in den Header-Files vom Redbook ersetzt habe.
Jetzt bekomme ich zumindest keine Linker Errors mehr
Eine Win32 Anwendung öffnet sich.Aber das Programm schmiert ab
Nunja wär ja auch zu schön gewesen ^^
Naja what ever
Danke für die Hilfe beim Linker-Fehler
Gruß
Jang0