Du kannst das clang /bin Verzeichnis in die Umgebungsvariable PATH eintragen (empfehle ich) http://wiki.ubuntuusers.de/Umgebungsvariable ,
oder du kopierst den Kram an passenden Stellen im Dateisystem (Vorsicht vor Konflikten)
oder du bastelst ein Paket und installierst dieses (das standard Ubuntu clang Paket vorher entfernen vorsicht Konflikte)
ich finde Eclipse CDT unter Linux wirklich gut (nimm nicht die Version aus den Paketquellen, die ist hoffnungslos veraltet). Die Toolchain kann man unter
Project -> Properties -> Settings -> Cross GCC Compiler
bearbeiten. Einfach von gcc auf clang bzw. von g++ auf clang++ aendern. Dort kann man auch die Compilerflags einstellen. Die gcc Flags sind (default) -O0 -g3 -Wall -c -fmessage-length=0 und die versteht clang auch.
boomigaard schrieb:
hab wohl zu viel Speicher angefordert oder so?
Möglich, ja. Auch wenn 10 kB doch etwas wenig sind. Ab ein paar MB wäre das eine Erklärung.
An deiner Beschreibung passt jedoch vieles nicht oder deutet auf Designfehler hin, die du ohnehin beheben solltest:
1.
eine .h vergessen, und da stand folgene deklaration drin:
Sicher, dass das eine Deklaration ist? Dein Codeabschnitt sieht nämlich aus wie eine Definition:
char Strings[100][100];
Eine Definition hätte in einem Header nichts zu suchen!
2. Ist Strings etwa global?
3. Sieht dazu auch noch ziemlich nach magischen Zahlen aus.
4. Oder einfach mal viel zu große Zahlen genommen, damit man sich nicht mit sauberer Programmierung rumschlagen muss?
5. Du hast ursprünglich im C++-Forum gefragt. Falls das C++ sein soll, ist es noch viel merkwürdiger, hier keine passende Datenstruktur gewählt zu haben. Sieht so aus wie etwas, das eigentlich vector<string> sein sollte.
Meme321 schrieb:
Gibt es dafür irgendwelche einführende Literatur wie soetwas alles funktioniert? Würde mich doch mal interessieren.
Für RPM (Fedora, Redhat, OpenSuse) gibt es im Fedora-Wiki eine Anleitung.
http://fedoraproject.org/wiki/How_to_create_an_RPM_package
Lass dich vom Umfang nicht abschrecken, das ganze ist halb so schwer wie es vielleicht auf den ersten Blick aussieht. Grundsätzlich läuft das ganze so ab, dass du eine Textdatei (im RPM-Jargon Specfile genannt) erstellst, die beschreibt wie das Paket aus dem vorhandenen Quellcode gebaut werden soll.
Das RPM-Buildsystem entpackt deinen Quellcode und ruft dein Makefile oder deine Buildskripte so auf, wie du es im Specfile beschrieben hast. Für gängige Buildsysteme (Autotools, cmake, whatever) gibt es Makros, die dir ein bisschen Arbeit abnehmen.
Anschließend wird das jeweilige Äquivalent zu "make install" aufgerufen, allerdings mit einem bestimmten, temporären Zielverzeichnis (Buildroot genannt). In der %files-Sektion deines Specfiles gibst du an, welche Dateien/Pfade des Buildroots letztendlich im Paket landen sollen.
Das war es auch eigentlich schon. Während des Vorgangs gibt es einige Möglichkeiten das Ergebnis zu beeinflussen. Du kannst etwa das Anwenden von Patches auf den Sourcecode festlegen oder bestimmen, dass bei der Installation und Deinstallation des Pakets bestimmte Skripte ausgeführt werden sollen und so weiter. Für den Anfang würd ichs erstmal mit einem minimalen Paket versuchen.
Diese Prinzipien sind eigentlich in allen Distributionen gleich. In den Details gibt es natürlich mehr oder weniger große Unterschiede.
Nach langem suchen, Disassemblieren und COFF-Specs lesen, kristallisiert sich nun heraus, dass Microsofts COFF sich ziemlich stark von den anderen COFF-Formaten unterscheidet. Ausser dem _bootstrap in NASM und dem _kmain-Symbol, das vom Bootstrap aus angesprungen wird, hat der Linker kein einziges anderes Symbol verknuepfen koennen. Entweder hat er irgendwelchen Schrott aus der .debug$S-Section in Calls eingebaut oder sie komplett leer gelassen (call .+5 bzw. E8 00 00 00 00).
EDIT: Mit einer neucompilierten Crosstools-Version, die MinGW-Support einkompiliert hat, funktioniert es jetzt. Ich musste zwar das Format beim Linken explizit angeben, da der Linker nicht automatisch zwischen normalen COFF (coff-i386) und Microsoft COFF/PE (pe-i386) unterscheiden konnte, aber das ist ja kein Beinbruch. In jedem Fall funktionierts. Nochmal danke an MrX, dass du mich ueberhaupt auf die Idee gebracht hast, mal mit IDA drueber zu laufen.
Habe gerade versucht die LFH einzuschalten. Bekomme aber den Fehlercode 31 (= A device attached to the system is not functioning) von GetLastError zurück.
Auch in der Release-Version.
Gruss
Lars
dd++ schrieb:
mit UMDH kenne ich mich jetzt im Detail nicht so aus, aber wenn solche Debugging Tools kein Memory Leak melden, dann liegt es wohl an der Fragmentierung
unter WinXP muß man den LFH selber aktivieren, vielleicht verbessert sich da ja etwas
http://msdn.microsoft.com/en-us/library/aa366750.aspx
Hättest einfach "Visual Studio 2005 Trial" bei der Suche im MS-Downloadbereich eingeben müssen
Dann wärst du zu Visual Studio 2005 Team Foundation Server Trial Edition gekommen...
Hallo,
Ich habe hier ein C++ Projekt (VS2010) und da ich das nicht selbst begonnen habe,
und es doch schon eine gewisse Größe hat, wollte ich dieses Visuell darstellen lassen.
Und das automatisch, so, dass man die Aufrufe/Abhängigkeiten direkt sehen kann.
Welche tools könnt ihr empfehlen, die das automatisch machen, und bedienen man am besten von einer Übersicht, dann auch weiter hinein zoomen kann oder direkt zum Code springen.
Was ich kenne benötigt immer viel manuelle Interaktion ...
Habe jetzt VS2010 und mein Projekt umgestellt (in neuem Verzeichnis - bin ja vorsichtig). Erst mal die gute Nachricht: Es lässt sich erstellen und scheint zu funktionieren
Aber: Es gibt jetzt einige Warnings, die vorher nicht da waren. Problem: Die Warning-Meldungen, die unten im "Error List" Fenster angezeigt werden, sind alle um eins zu hoch (Fehler/Warning in Zeile 163, aber eigentlich ist der Fehler in Zeile 162.
Beispiel:
Fehlermeldung (man beachte "dgvKurse" und die Zeilennummer 163 in der Warning):
Description File Line Column
(Warning - gelbes Ausrufezeichen) The variable 'dgvKurse' is either undeclared or was never assigned. Form1.cs 163 0
Der Source-Code:
162 ((System.ComponentModel.ISupportInitialize)(this.dgvKurse)).EndInit();
163 this.ResumeLayout(false);
Fehler in VS oder mache ich einen Denkfehler? Außerdem stimmt die Spalte ja auch nicht.
dgvKurse ist deklariert und hat einen Wert zugewiesen bekommmen:
public partial class Form1 : Form {
...
public DataGridView dgvKurse=null;
...
Wolfgang K. schrieb:
Microsoft C++ Express braucht einiges mehr an Vorarbeit, ich muß immer an diesem Programm Voreinstellungen vornehmen (umschalten auf die Releasefunktion). Da finde ich Linux etwas komfortabler.
2 Mausklicks
DarkLord44 schrieb:
Wenn ich aber jtz ein C++ Programm schreibe,nicht unbedingt mit C++-11 kommt eine Fehlermeldung über -Wswitch-default. Wenn ich den Flag entferne ist alles wieder gut. Was ist da dann das Problem?
Warn whenever a switch statement does not have a default case.