Frage

Das Problem ist, dass der Compiler sagt, dass es eine Neudefinition einer Funktion zwischen einer Bibliothek, die auf MySQL und math.h von der std Bibliothek gehört.

Ich habe zwei Tage lang über diese und ich kann es immer noch nicht herausgefunden.

Hat dies jemals jemand passiert?

Dies ist die Ausgabe des Compilers


C:\mingw\bin\mingw32-make.exe all 
'Building file: ../src/interfaz/ventanaconf.cpp'
'Invoking: GCC C++ Compiler'
C:\mingw\bin\mingw32-g++.exe -mms-bitfields -I"c:\dev-cpp\gtkmm\include\gtkmm-2.4" 
-I"c:\dev-cpp\gtkmm\lib\gtkmm-2.4\include" -I"c:\dev-cpp\gtkmm\include\glibmm-2.4" 
-I"c:\dev-cpp\gtkmm\lib\glibmm-2.4\include" -I"c:\dev-cpp\gtkmm\include\gdkmm-2.4" 
-I"c:\dev-cpp\gtkmm\lib\gdkmm-2.4\include" -I"c:\dev-cpp\gtkmm\include\pangomm-1.4" 
-I"c:\dev-cpp\gtkmm\include\atkmm-1.6" -I"c:\dev-cpp\gtkmm\include\sigc++-2.0" 
-I"c:\dev-cpp\gtkmm\lib\sigc++-2.0\include" -I"c:\dev-cpp\gtkmm\include\cairomm-1.0" 
-I"c:\gtk\include\gtk-2.0" 
-I"c:\gtk\include\glib-2.0" 
-I"c:\gtk\lib\glib-2.0\include" 
-I"c:\gtk\lib\gtk-2.0\include" 
-I"c:\gtk\include\pango-1.0" 
-I"c:\gtk\include\cairo" 
-I"c:\gtk\include\freetype2" 
-I"c:\gtk\include" 
-I"c:\gtk\include\atk-1.0" 
-I"c:\Archivos de programa\MySQL\MySQL Server 5.0\include" 
-O0 -g3 -w -c -fmessage-length=0 -MMD -MP -MF"src/interfaz/ventanaconf.d" 
-MT"src/interfaz/ventanaconf.d" 
-o"src/interfaz/ventanaconf.o" "../src/interfaz/ventanaconf.cpp"
In file included from c:/Archivos de programa/MySQL/MySQL Server 5.0/include/my_global.h:73,
                 from ../src/interfaz/../gestiondb/gestordb.h:6,
                 from ../src/interfaz/../gestiondb/operacionesdb.h:5,
                 from ../src/interfaz/ventanamodulos.h:20,
                 from ../src/interfaz/ventanaconf.h:27,
                 from ../src/interfaz/ventanaconf.cpp:1:
c:/Archivos de programa/MySQL/MySQL Server 5.0/include/config-win.h: **In function `double rint(double)':
c:/Archivos de programa/MySQL/MySQL Server 5.0/include/config-win.h:228: error: redefinition of `double rint(double)'
C:/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/math.h:620: **error: `double rint(double)' previously defined here**
C:\mingw\bin\mingw32-make.exe: *** [src/interfaz/ventanaconf.o] Error 1**

Vielen Dank im Voraus !!!

War es hilfreich?

Lösung 2

Das Problem war, über eine mitgelieferte Bibliothek, die Linux einfach ignoriert, aber die Fenster wollen aus. Es gibt kein Problem, das es heraus in Linux weder ...

Vermietung

An manchen Tagen fühle ich mich SOOOOOOOOOOOOOOOOOOOOOOO DUMM: ..

Andere Tipps

dieses Thema in dem mysql-Support-Bereich scheint darauf hinzudeuten, dass sie‘ ve ergriffen, um die Definition von rint () aus ihrer config_win.h Datei ab April dieses Jahr (wurde, obwohl der Patch im Jahr 2006 vorgeschlagen). Sind Sie eine Version der MySQL-Quelle neuer ist als das?

In Zeile 228 von c: / Archivos de programa / MySQL / MySQL Server 5.0 / include / config-win.h sollten Sie eine Erklärung / Definition der Funktion mit dem Namen "rucken" finden. In Zeile 620 von C: / mingw / bin /../ lib / gcc / mingw32 / 3.4.2 /../../../../ include / math.h Sie eine andere Definition einer Funktion finden sollte mit den gleichen Namen (was wahrscheinlich auch das gleiche tut).

Um das Problem zu lösen, die Sie löschen müssen / outcomment / undefine eine dieser Definitionen.

Seien Sie bereit, ein ähnliches Problem zu erhalten, wenn die Verknüpfung, wenn Sie auch zwei Bibliotheken mit derselben Funktion verbinden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top