Moin!
Arch Linux 27.06.09
Kdevelop 3.5.4-1
make 3.81-4
binutils 2.19.1-4
gcc 4.4.0-3
libtool 2.2.6a-1
Ich habe ein Problem in KDevelop beim Linken. Wenn ich die einfache "Hello-World"-Vorlage in C oder C++ kompilieren möchte (mit von KDevelop automatisch generierten Configure/Make), startet die IDE in einer Endlosschleife immer neue Linker-Prozesse, bis das System überladen ist und den schuldigen Benutzer (mich) rausschmeißt, oder ich KDevelop schließe.
Die Build-Umgebung an sich scheint in Ordnung zu sein. gcc-ada und wine-stable aus dem AUR wurden problemlos, automatisch und ohne Fehler über yaourt kompiliert, gepackt und installiert. Die "Hello-World"-Vorlage in Ada kompiliert ebenfalls einwandfrei. Kompiliere ich das Hello-World-Programm mit "gcc -o testc ~/kdevelop/testc/main.c" manuell, erstellt er auch ohne Beschwerden eine funktionierende, ausführbare Datei.
Erwähnenswert ist vermutlich, dass ich von dem "Crash-beim-Projekt-Erstellen"-Bug betroffen war und den hier angegebenen Workaround verwendet habe:
~/.kde/share/config/kdev* gelöscht
su
rm -r /usr/share/apps/kdevappwizard/
cp -r /opt/kde/share/apps/kdevappwizard /usr/share/apps/
Es könnte also gut an einigen falschen Einstellungen liegen. Leider kenne ich mich mit "make" nicht so gut aus, daher habe ich den Fehler bisher nicht finden können. Auch KDevelop nutze ich praktisch zum ersten mal. Das Web spuckt nichts für mich hilfreiches zu diesem Problem aus.
Hat jemand eine Idee, an welcher Stelle hier der Linker falsch aufgerufen werden könnte, oder ob sonstige, ähnliche Fehler bekannt sind und irgendwo behoben wurden?
PS: Die letzte Meldung von KDevelop ist: kdevelop (output views): Found: linking testc(libtool)
libtool version: 2.2.6a-1
juhu
hab jetzt die lösung gefunden (nach stundenlangem googeln -.-)
also eigentlich is das ganz einfach:
HINSTANCE hLib=LoadLibrary("UxTheme.dll");// lade Uxtheme.dll
typedef HRESULT (__stdcall *dllSetWindowTheme)(HWND,LPCWSTR,LPCWSTR);
dllSetWindowTheme SetWindowTheme=(dllSetWindowTheme)GetProcAddress(hLib,"SetWindowTheme");// Hole Adresse der Funktion aus dll
SetWindowTheme (ListView, L"explorer", NULL);// führe sie aus
FreeLibrary(hLib);// schließe die dll
es war also eig. garnicht der compiler...
Hoffe es hilft vieleicht...
MFG
Ich habs selber rausgefunden:
Prozess als Debug übersetzen, dann werden die Funktionen im Stack mit Namen angezeigt, mein Speicherleck hab ich auch schon gefunden
Prima
Hi,
Peino schrieb:
Tools -> Options -> Text Editor -> General:
Selection Margin ein?
ja bei "Auswahlrahmen" ist ein Hacken. Wenn ich das entfernen kann man noch nicht mehr mal die Funktionen einklappen.
Peace & Blessed Love C0de4Fun
Hallo, danke für den Hinweis.
ich habe mir vorgestellt, das jemand anderes ohne KDevelop den
Code kompilieren können sollte. Zunächst hatte ich in KDevelop
wie Du sagst, die Libraries in den Project-Settings angegeben.
Beim Versuch das mit make zu kompilieren traten dann aber unauf-
gelöste Symbole auf. Der Grund meiner Nachforschungen ....
Trägt man nun die fehlenden Libs in Makefile.am ein muss jemand
anderses eben nicht herausfinden welche libs benötigt werden und
configure kann ohne LIBS='...' davor aufgerufen werden. Bei allen
Projekten die ich so aus fremder Hand bekam war kein KDevelop-Projekt
mit dabei, immer nur per configure/make zu erstellen.
Viele Grüße RB, blutiger Anfänger
Sehr interessante Infos zu den Änderungen der Std-Lib und C++0x in VC 2010:
http://channel9.msdn.com/shows/Going+Deep/VC-10-Stephan-T-Lavavej-and-Damien-Watkins-Inside-STL/
Hi,.
also ich portiere gerade ein projekt von bloodshed Dev-cpp nach vc++2008 express. Es lief vorher einwandfrei, nun bekomme ich aber bei dem Ausführen (im Debug Modus) andauernd bei Pointern die Fehlermeldung <Schlechtes Ptr>. Da es vorher ohne Probleme funktioniert hat weiß ich gerade net weiter,.... ist Euch das Problem bekannt??
Grüüüße
irgend ein 16bit/32bit-problem. turbo C 3.0 halte ich eigentlich für zuverlässig, denn mit Borland C++ 3.1 habe ich sehr sehr lange gespielt und nie Probleme gehat.
mir ist nicht klar, wie du allokiert hast. war es ein long oder ein int, der die speichergröße beinhaltete? dein size_t sollte groß genug sein, aber 4000*4000 ist nu ein int.
hast du auch wirklich far-zeiger verwendet, um im speicher rumzuspringen? hast du auch wirklich long oder size_t als arrayindex benutzt?
Hallo,
ich habe ein schon bestehendes C++-Projekt, das ich gerne in Eclipse importieren wuerde. Mein Problem ist nun, dass ich in den Projekt-Eigenschaften, keine Stelle finde, an der ich festlegen koennte, welches Makefile verwendet werden soll.
Weiss da jemand weiter?
Falls mal einer auf diesen Thread stößt: im Visual Studio lässt sich das LAA-Flag übrigens in den Projekt-Einstellungen über Linker->System->Große Adressen aktivieren direkt einstellen.
Visual Stuido 2005 und 2008 bietet ein Feature, dass alle Abschnitte, die in einem deaktivierten Präprozessorblock liegen, ausgraut: Ein (über Google gefundenes) Beispiel
IFAIK geht das auch in den Express Editions.
Ich fand Visual Assist X eigtl nicht so prall ^^
Aber für das Problem scheint es wohl genau das zu sein, was ich mir vorgestellt hatte ^^ Offensichtlich hatte ich es einfach nicht lang genug probiert, um die Features zu entdecken
http://www.wholetomato.com/purchase/default.asp
Ich nehm mal an, du meinst die Academic License für 49$ ?!
Also ziemlich genau 35€...
Und das kauft man halt dann für jede neue MSVC Version?! (bzw für jede, die man nutzt)
Richtig?
Dachte mal gelesen zu haben, dass es in VS2010 auch für C/C++ vorhanden sein wird, bin mir aber nicht mehr sicher
Gut möglich - auf jeden Fall ist es bis jetzt offensichtlich noch nicht implementiert.
Iwann hatte ich auch ma gelesen, dass der MSVC mehrere Bildschirme unterstützen sollte - aber das wird wohl erst in der 11 so sein - in der jetzigen Beta hab ich jedenfall nichts davon gesehen - dabei war ich gerad auf das Feature so gespannt
bb
rul0r schrieb:
Badestrand schrieb:
Wieso sollte man das tun wollen?
Wenn man beim Crosscompiling nicht auf eine komfortable IDE verzichten will?
Alright, Cross-Compiling klingt sinnvoll.
Hab's nie gemacht, aber afaik nimmt man dafür File->New->Project->Makefile Project.
Hallo liebe Community,
ich versuche gerade die SFML in Codeblocks verfügbar zu machen.
http://www.sfml-dev.org/tutorials/1.5/start-cb.php
Nach dieser Anleitung bin ich vorgegangen. In den Einstellungen für Search directories stehen jeweils die richtigen Pfade bei Compiler sowie bei Linker.
Den MinGW-Compiler hatte ich schon vorher installiert. Codeblocks hat in auch sofort erkannt.
Weil das in den Einstellungen nichts gebracht hat, habe ich auch noch die Verzeichnisse /include/SFML und /lib/mingw ins MinGW-Verzeichnis kopiert. Obwohl es sollte, funktioniert es immernoch nicht.
undefined reference to ...
Erst als ich in Linker settings direkt zur Bibliothek verwiesen habe, konnte ich den Quellcode kompilieren und dann nur ausführen, nachdem die dll auch im gleichen Verzeichnis wie die exe war.
Das finde ich ehrlich etwas umständlich. Warum klappt der oben beschriebene Weg nicht?
Edit: Hm.. Hab nicht ganz zu Ende gelesen, in der Anleitung. Bei Build options fehlte noch was. Trotzdem kommt jetzt
ld.exe||cannot find -llsfml-system|
||=== Build finished: 1 errors, 0 warnings ===|
Edit2: Jezt geht es. Ich hatte lsfml-system erst in die linke Spalte eingetragen.
Edit3: Damit die dlls gefunden werden, sollte noch der Pfad dahin in der Umgebuntsvariablen Path angegeben werden.