Code::Blocks mit GCC äquivalent zu MSVC++?
-
Hallo Coder,
habe derzeit ein kleines Problem mit der Kompilierung eines Projektes von Sourceforge, welches mit MSVC++ erstellt wurde. Und zwar möchte ich nur ungerne Microsofts Express Editionen installieren, da ich für diese gegenwärtig nur schwerlich soviel freien Speicher wie nötig auf Partition C:\ bereitstellen kann. Außerdem sind meine Ressourcen allgemein ziemlich begrenzt und deswegen erschien mir Code::Blocks eine vernünftige Alternative, zumal dieses ebenfalls MSVC++-Projektdateien lesen kann und ich OpenSource gerne soweit möglich gegenüber propietären Lösungen bevorzuge. Soweit sogut, nur beim kompilieren des Unterprojektes InstantVNC von EchoVNC (übrigends mein Lieblings-VNC-Derivat finde ich sogar besser als UltraVNC, da es ohne Addons die Portfreigabe-Problematik löst.) Nur erhalte ich wenn ich es kompilieren möchte in der Sourcefile ZipUnzip32.cpp folgende Fehler:||=== miniWinVNC, Win32 Release ===|
:11|1|macro names must be identifiers|
C:\InstantVNC_1.40_src\InstantVNC\ZipUnZip32\zipunzip32.h|231|warning: no newline at end of file|
C:\InstantVNC_1.40_src\InstantVNC\ZipUnZip32\ZipUnzip32.cpp||In member function `bool CZipUnZip32::ZipDirectory(char*, char*, char*, bool)':|
C:\InstantVNC_1.40_src\InstantVNC\ZipUnZip32\ZipUnzip32.cpp|140|error: non-lvalue in assignment|
C:\InstantVNC_1.40_src\InstantVNC\ZipUnZip32\ZipUnzip32.cpp|141|error: non-lvalue in assignment|
C:\InstantVNC_1.40_src\InstantVNC\ZipUnZip32\ZipUnzip32.cpp|142|error: non-lvalue in assignment|
||=== Build finished: 4 errors, 1 warnings ===|Der Code bei dem die Fehler auftreten:
{ // Map the dll functions we need to use (_ZIP_USER_FUNCTIONS)m_PZipInit = (_ZIP_USER_FUNCTIONS)GetProcAddress(m_hZipDll, "ZpInit"); //Das ist Zeile 140 (_DLL_ZIP)m_PZipArchive = (_DLL_ZIP)GetProcAddress(m_hZipDll, "ZpArchive"); (ZIPSETOPTIONS)m_PZipSetOptions = (ZIPSETOPTIONS)GetProcAddress(m_hZipDll, "ZpSetOptions"); if (!m_PZipArchive || !m_PZipSetOptions || !m_PZipInit) { FreeLibrary(m_hZipDll); FreeUpZipMemory(); return false; } }
Kann ich mit weiteren Fehlern rechnen mit dem GCC-Compiler? Würdet ihr mir raten den MS Compiler für Projekte von Sourceforge zu nehmen?
Noch ein paar Infos zu meinem System:
Compiler: GNU GCC 3.4.5
IDE: Code::Blocks 8.02
OS: Win XP SP3
CPU: Intel Celeron 1,8GhzNoch by the way eine kleine mathematische Frage damit ich damit nicht extra einen Thread aufmachen muss:
Ich habe gelesen das jede Rechenart sich mit der Operation + nachbauen lässt, beispielsweise ist die Subtraktion auch nur eine Addition mit der Gegenzahl des Subtrahenden, also 5 - 2 = 3 ließe sich auch als 5 + -2 ausdrücken. Kennt jemand eine Seite auf der abgebildet ist, wie sich verschiedene Rechenarten allein mit der +-Operation konstruieren lassen?Danke im voraus für die Antwort
DEADBEEF
-
Kann mir keiner weiterhelfen?
Fehlt noch eine wichtige Information?
-
Zuerst solltest du halbwegs aktuelle Versionen der verwendeten Programme installieren und sehen ob der Fehler noch auftritt.
MinGW gibt's hier: http://tdragon.net/recentgcc/
Code::Blocks hier: http://forums.codeblocks.org/index.php/topic,11504.0.htmlEdit: liegt aber wohl eher weniger an einer alten Version, als dass das kein gültiger C++ - Code zu sein scheint. Probier mal sowas wie (_ZIP_USER_FUNCTIONS)m_PZipInit durch *reinterpret_cast<_ZIP_USER_FUNCTIONS*>(PZipInit) zu ersetzen. Da kommen einem zwar immer noch die Tränen, aber wenigstens sollte es gültiges C++ sein.
-
Nanyuki schrieb:
*reinterpret_cast<_ZIP_USER_FUNCTIONS*>(PZipInit)
*reinterpret_cast<_ZIP_USER_FUNCTIONS*>(&PZipInit)
Da kommen einem zwar immer noch die Tränen
Jupp