die komplette Compiler Infrastruktur von MSVC 2010 findest du im SDK 7.1, da ist alles für 32-Bit und 64-Bit Compilierung dabei
http://www.microsoft.com/en-us/download/details.aspx?id=8442
compiliert wird dann mit einer Batch-Datei (.bat) oder etwas eleganter mit einem Makefile. beim MSVC gibt es dafür nmake
http://msdn.microsoft.com/en-us/library/dd9y37ha%28v=vs.100%29.aspx
wenn man nmake-spezifische Erweiterungen nicht verwendet, sind die Makefiles sogar kompatibel zum UNIX-Make, und dafür gibt es zahlreiche Anleitungen und Beispiele
zu beachten ist noch, daß man für 32-Bit Target ein 32-Bit nmake verwenden sollte und für 64-Bit Target ein 64-Bit nmake
hi,
ich bin Neuling mit Boost Welt.Ich bin gerade dabei Boost Libraries unter Ubuntu mit Eclipse CDT laufen zu lassen. An dieser Stelle habe ich ihre Beschreibung gelesen und wollte nur wissen, was bjam eigentlich tut. Habt ihr mit "boost installieren" bjam gemeint?
rolleyes schrieb:
Trollen hier schon die Mods
Was willst du auf solch eine Frage auch antworten. Da fehlt doch voll der Kontext, um welchen Code es sich handelt usw... Ziemlich gut ist doch die beste allgemeine Antwort.
Sorry: Im Betreff müsste OT oder Leicht OT davor stehen. Ich möchte aber, dass man diesen Beitrag leicht über Google finden kann - da würde das stören. Hier geht es nicht um C... sondern Java (nur Installation und die Probleme).
Ist hier natürlich nicht ganz das richtige Forum (warum eigentlich nicht, ist auch sehr ähnlich zu den C-Sprachen), aber mancher wird es trotzdem ab und an benutzen müssen.
Hatte das mal auf altem Rechner installiert, der kaputt ging. Habe dann die Platten in neuen Rechner eingebaut, Windows neu installiert und die alten Einstellungsdateien übernommen und auch die Umgebunsvariablen so gesetzt wie am alten PC (damit meine Verzeichniss im PATH usw. stimmen).
Dann habe ich nach langer Zeit (muss da jetzt was tun) Java SDK heute installiert (am alten Rechner war es installiert, am neuen natürlich nicht mehr, habe auch vorher die alten Verzeichnisse von der Platte gelöscht). Installation lief irgendwie schon nicht richtig, aber kein echter Fehler. Aber danach konnte man nichts mit z. B. "javac hello.java" compilieren.
War am Verzweifeln, bis ich mir mal die Umgebungsvariablen angesehen habe. Da ich die mehr oder weniger 1:1 vom alten Rechner übernommen hatte, waren die falsch (das aktuelle Java 7.21 habe ich mir jetzt auf C: - habe mir eine SSD geleistet) installiert, vorher auf K:. Das Java-Installations-Programm ändert die Umgebungsvariablen aber nicht, falls die gesetzt sind, darum lief zunächst nicht mal eine einfaches javac. Da ich auch (wird nicht automatisch gemacht) einen CLASSPATH gesetzt hatte, gab es auch nach Einfügen des Java-BIN-Verzeichnisses (den Fehler hatte ich schnell gefunden - javac nicht gefunden) Fehler (irgendwelche Libs nicht gefunden).
Fazit: Vor Installation eines neuen Java-SDKs alle Umgebungsvariablen löschen, die irgendwie auf Java verweisen. Dann hat es bei mir funktioniert (nach der 3. Installation und vorherigem Löschen der Umgebungsvariablen läuft es jetzt).
SeppJ schrieb:
- Die libm ist im Vergleich zur Standardbibliothek recht groß, sie würde die Linkzeit auf einem langsamen Rechner stark erhöhen
Ich denke nicht, dass das einen messbaren Unterschied macht.
SeppJ schrieb:
- Eine separate libm vereinfacht es erheblich, eine eigene Implementierung zu benutzen.
Ja, aber das erklärt nicht, weshalb sie nicht implizit mitgelinkt wird. Wer sich die Mühe macht, sin durch was besseres zu ersetzen, darf dann halt sagen "link das ohne -lm".
SeppJ schrieb:
Alles begann mit dem Schmieden der großen Ringe…
Mir gefällt die Erklärung besser, dass es unter manchen historischen Computernprozessoren keine Unterstützung für Floating-Points gab und deswegen eine mathlib dort keinen Sinn hätte.
Der Spuck findet kein Ende.
Nachdem ich nun die set_default() Methode von meiner Menü-Klasse implementieren wollte, kamen komische redefinition errors - ratet mal von welcher Klasse.
is_printable<>
nach zyklischen includes untersucht
sichergestellt, dass die Klasse auch wirklich nirgendwo redefiniert wird.
Schlussendlich habe ich nun sowas gebaut:
template<typename Type, typename = std::ostream&>
class is_printable_impl : public std::false_type {};
template<typename Type>
class is_printable_impl<Type, decltype(std::declval<std::ostream&>() << std::declval<Type>())> : public std::true_type {};
template<typename Type>
class is_printable : public is_printable_impl<Type> {};
Wobei die Klasse is_printable nun sowohl im Konstruktor als auch sonst wo endlich wie gewünscht funktioniert.
manmanman...
Hallo zusammen,
Ich versuche schon ne ganze Weile eine geeignetes Tutorial zu finden um Qt in die Visual C++ 2010 IDE einzubinden.
Kann mir da jmd am besten eine step by step Anleitung empfehlen ?
Am besten wäre es ,wenn sich das Tutorial zuerst mit dem einbinden in die IDE befasst, und danach auch ein wenig Grundwissen der QT GUI Programmierung vermitteln würde.
Edit : Ich habe mir jetzt einfach mal die binary runtergeladen.
Allerdings habe ich Windows 64 bit , und meine Ide ist Visual Studio 2010 .
Es wird für jede Systemkombi+Ide etwas angeboten ,nur für visual studio2010 auf einem 64 Betriebssystem gibt es keine Installer exe .
Habe mir deshalb auf gut Glück einmal die installer exe für 64 bit vs 2012 und einmal 32 bit vs 2010 runtergeladen. Beide Versionen lassen sich starten nur wenn ich dann ein Beispielprojekt aus dem Qtcreator ausführen lassen will kommt bei 64 bit in etwa diese Fehlermeldung : "Qt Creator benötigt einen Compiler fügen sie in den Kit einstellungen einen Compiler hinzu".
Wenn ich das versuche klappt es einfach nicht den Vs 2010 Compiler einzufügen.
Bei der anderen geladenen Version ( 32 bit vs 2010) kommt
diese kryptische Fehlermeldung
03:01:36: Führe Schritte für Projekt 2dpainting aus...
03:01:36: Unveränderte Konfiguration, qmake-Schritt wird übersprungen.
03:01:36: Starte "C:\Qt\Qt5.0.2\Tools\QtCreator\bin\jom.exe"
C:\Qt\Qt5.0.2\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"..\..\..\include" -I"..\..\..\include\QtOpenGL" -I"..\..\..\include\QtWidgets" -I"..\..\..\include\QtGui" -I"..\..\..\include\QtCore" -I"debug" -I"." -I"..\..\..\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Marius\AppData\Local\Temp\glwidget.obj.8768.16.jom
Der Befehl "cl" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
jom: C:\Qt\Qt5.0.2\5.0.2\msvc2010\examples\opengl\build-2dpainting-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\Makefile.Debug [debug\glwidget.obj] Error 1
cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"..\..\..\include" -I"..\..\..\include\QtOpenGL" -I"..\..\..\include\QtWidgets" -I"..\..\..\include\QtGui" -I"..\..\..\include\QtCore" -I"debug" -I"." -I"..\..\..\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Marius\AppData\Local\Temp\helper.obj.8768.63.jom
Der Befehl "cl" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"..\..\..\include" -I"..\..\..\include\QtOpenGL" -I"..\..\..\include\QtWidgets" -I"..\..\..\include\QtGui" -I"..\..\..\include\QtCore" -I"debug" -I"." -I"..\..\..\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Marius\AppData\Local\Temp\main.obj.8768.110.jom
Der Befehl "cl" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"..\..\..\include" -I"..\..\..\include\QtOpenGL" -I"..\..\..\include\QtWidgets" -I"..\..\..\include\QtGui" -I"..\..\..\include\QtCore" -I"debug" -I"." -I"..\..\..\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Marius\AppData\Local\Temp\widget.obj.8768.141.jom
Der Befehl "cl" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
jom: C:\Qt\Qt5.0.2\5.0.2\msvc2010\examples\opengl\build-2dpainting-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\Makefile.Debug [debug\helper.obj] Error 1
Eigentlich ist es selstverständlich ,dass beide nicht laufen ,da es einfach keine binary für mein System ( 64 bit ) und der IDE Vs2010 gibt) ich hatte es dennoch probiert irgendeine möglichkeit muss es doch geben , oder habe ich nur evtl irgendwo etwas nicht Eingestellt , oder einen Fehler gemacht?
Ja, das macht es für CodeBlocks wunderbar leicht:
Mit dem neuesten Nightly folgendes machen:
Settings Compiler Entsprechenden Compiler auswählen Other Settings (der Reiter ganz Rechts) Advanced Options Others "Add header files search path (e.g. -I):" zu -isystem ändern
Hi,
ich bin eher Neuling in Sachen C++, QT und Raspberry pi. Ich komme von Java deswegen fällt mir das mit den Compilern und den vielen verschiedenen Bibliotheken recht schwer.
Ich habe mit der QT IDE ein kleines Programm geschrieben und jetzt würde ich das recht gerne auf meinem Raspberry pi laufen lassen. Problematisch ist, dass normale Linux Programme auf dem pi nicht laufen da er einen speziellen Prozessor hat.
Könnte mir bitte jemand Schritt für Schritt erklären wie ich vom Sourcecode zum ausführbaren Programm komme.
Wichtig ist, dass später auch QT und OpenGL funktionieren sollten, das heist es müsste wahrscheinlich noch irgendetwas auf dem pi installiert werden. Ist das richtig?
Ich freu mich auf eure Antworten.
Hallo,
ich schreibe gerade an einem Programm, für das ich Abhängigkeiten auf externe Bibliotheken habe. Da das ganze in möglichst vielen Umgebungen laufen soll, habe ich die wichtigsten Bibliotheken per ExternalProject_Add eingebunden, so daß diese automatisch mit kompiliert werden können.
Das ganze sieht beispielsweise so aus:
ExternalProject_Add(
libTinyXML2
PREFIX libTinyXML2
GIT_REPOSITORY ${BUILD_TINYXML2_GIT_CHECKOUT_URL}
GIT_TAG ${BUILD_TINYXML2_GIT_CHECKOUT_TAG}
# cmake config
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_ARGS ${BUILD_TINYXML2_CMAKE_ARGS}
# disable update
UPDATE_COMMAND ""
)
Woran ich jetzt noch hänge ist der Punkt, wie ich am geschicktesten festlege, daß die erzeugte Bibliothek auch zu meinem Projekt gelinkt wird.
Mein erster Versuch war es, die Bibliothek einfach ins aktuelle Build-Verzeichnis zu kopieren und meine Abhängigkeit per target_link_libraries darauf zu setzen:
ExternalProject_Get_Property(libTinyXML2 SOURCE_DIR)
ExternalProject_Get_Property(libTinyXML2 BINARY_DIR)
set(TINYXML2_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}tinyxml2${CMAKE_SHARED_LIBRARY_SUFFIX})
add_custom_command(
TARGET libTinyXML2 POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BINARY_DIR}/${TINYXML2_LIBRARY_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${TINYXML2_LIBRARY_NAME}
MAIN_DEPENDENCY ${BINARY_DIR}/${TINYXML2_LIBRARY_NAME}
)
Das funktionierte wunderbar mit Makefiles und gcc, scheitert aber bei Visual Studio, da die DLLs dort in einem anderen Unterverzeichnis liegen, das zudem noch je nach Konfiguration unterschiedlich ist.
Inzwischen versuche ich es damit, dem ExternalProject ein INSTALL_PREFIX mitzugeben, und von dort die Libraries zu nehmen, bin mir aber nicht sicher ob das wirklich der bessere Weg ist.
Gibt es nicht eine einfachere Möglichkeit, direkt eine Abhängigkeit auf ein Target aus dem ExternalProject zu verweisen? Wenn ich innerhalb meines eigenen Buildscripts auf ein library-Target verweise, weiß CMake ja auch, wo die Dateien am Ende liegen, und ich muss keine Pfade von Hand setzen.
Hatte heute das gleiche Problem, nach Neustart von Visual Studio 2008 funktioniert das Debugging nun wieder.
Ich hatte über Nacht den Rechner mit allen Programmen laufen lassen (größeres Programm währenddessen kompilieren lassen), am nächsten Tag hatte ich dann die geschilderte Problematik.
Projektmappe bereinigen etc. hat alles nichts gebracht.
gherf schrieb:
Ich finde noch nicht mal das aktuelle Compiler-Handbuch auf der Intel-Seite...
Unter man/en_US/man1/icc.1 innerhalb des Installationsverzeichnisses solltest du die gewünschten Informationen finden.
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Moin zusammen!
Wo finde ich bei dem obigen beschriebenen Compiler die Option, wo ich bei einer Klasse [class] die Vorschau der vorhandenen Variablen bekomme?
class beispiel {
public:
int variable;
string variable2;
};
beispiel bl;
bl.[hier soll die Vorschau der vorhandenen Variablen erscheinen]
P.S.: Reicht es die "devcpp.ini" im Ordner "Anwendungsdaten\Dev-Cpp" zu sichern, wenn man bei einer Neuinstallation die gleichen Einstellungen haben möchte? (Ich denke mal ja)
Vielen Dank!
MfG
linwin schrieb:
hi,
gibt es eine möglichkeit, dass ich, wenn ich unter windows cb benutze, jeweils eine .dll und .so builden kann? der projekt sourcecode ist für cross compile ausgelegt, deshalb wäre es gut, wenn codeblocks mir zusätzlich zu der .dll noch eine .so erstellen würde.
gibt es dieses feature?
danke für hilfe!
mfg
ja, du brauchst dafür einen cross-compiler.
unter windows einen compiler, der elf dateien erstellen kann, und unter linux einen compiler, der windows-pe dateien erstellen kann.
gibts beides.