Hmm.
Was ich nun noch herausgefunden habe, wenn ich den Ausgabeordner "debug" nach dem Build komplett lösche,
und nochmals auf Build klicke wird nicht neu kompiliert:
Diese Ausgabe erhalte ich:
Build with surface heuristics started at 09:55:32
Build completed in 00:00:00.021
Also irgendwie erkennt er nicht dass das Ausgabeverzeichnis gelöscht wurde. Woran kann das liegen?
Ein C++-Compiler hat nichts mit einer GUI zu tun.
Echte Open Source Compiler sind gcc und clang. Aber auch Visual Studio darf ohne Bezahlung für kommerzielle Projekte genutzt werden.
Für die GUI brauchst du eine passendes GUI-Bibliothek. Ein Beispiel dafür wäre Qt.
Benötigst du eine IDE? Visual Studio ist eine. QtCreator ist eine andere, auf Qt zugeschnittene.
@laura555 Du Fragst in einem über ein Jahr alten Thread einen User der seit mehr als einem Jahr nicht mehr online war. Wenn Du eine Frage hast dann stelle die bitte in einem neuen Thread im Compiler- und IDE-Forum.
Danke schön!
Mein erster Eintrag verweist auf ein GitHub Profil wo nix zum angefragten Package steht. Und dass man auf hellix.com doch fündig werden kann versteht sich aus der Hompepage jetzt auch nicht von alleine. Die gefundenen alten Links auf hellix waren ja nicht mehr gültig. Aber nochmal, danke.
Ich habe es grad mal getestet mit dem Fehler in dem Programm der für das heimliche ausführen im Hintergrund gesorgt hat. Ich habe tatsächlich schon vorher in beide Tabs geschaut aber ich glaube ich war lediglich blind denn unter Details stand die Anwendung tatsächlich drin. Habe ich es mir echt unnötig schwer gemacht Habe den Rechner bestimmt einige zig Male neu gestartet -.-
Und ich war kurz davor Windows neuzuinstallieren da ich dachte dass damit was kaputt is
Hab es erstmal so gelöst:
#if defined(_MSC_VER)
#if _HAS_CXX17
#include <filesystem>
namespace fs = std::filesystem;
#define __HAS_FILESYSTE
#endif // _HAS_CXX17
#elif defined(__MINGW32__) || defined(__GNUC__)
#if __cplusplus >= 201703L
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#define __HAS_FILESYSTE
#endif // __cplusplus >= 201703L
#endif
Danke für Eure Infos, Gruß Helmut
ps. GNUC bin ich mir noch nicht sicher, probiere ich wahrscheinlich Sa. aus.
Ich habe zwar ein embedded System und kompiliere nicht nativ aber bei meinem (onboard) ST_Link gibt es ein Konfig Script (für den Debugger). Hier ist hinterlegt mit welcher Frequenz er sich mit dem Gerät verbindet, sowie der Name des Geräts.
Vielleicht gibt es bei dir ja was vergleichbares?
Hey vielen Dank.
Das war in der tat ein guter Hinweis:
Ich habe das nostartupfiles jetzt entfernt. Jetzt linkt er auch korrekt
Falls es jemanden interessiert:
Ich hatte danach noch ein weiteres Problem was ich lösen konnte: Leider wurden die statischen Konstruktoren nie aufgerufen.
In meinem Startup Script sind die folgenden Schritte deifiniert:
/**
**===========================================================================
** Program - Reset_Handler
** Abstract: This code gets called after a reset event.
** 1. Call system initialzation routine
** 2. Copy .data section from ROM to RAM
** 3. Clear .bss section (Zero init)
** 4. Run static constructors
** 5. Enter main
** 6. Loop forever if returning from main
**===========================================================================
*/
Es hat sich herausgestellt das irgendjemand einfach den Teil (4) auskommentiert hat :O.
Also Falls jemand ein Ähnliches Problem hat, dass die statischen Konstruktoren nicht auferufen werden, prüft euer startup script
Vielen Dank aufjedenfall für eure schnelle Hilfe und Denkanstöße
@booster Boost macht das automatisch über den Pre-Processor mit einer Erweiterung für Visual Studio. Um genau zu sein mit #pragma comment(lib, "<name der lib>"). Siehe auch hier: https://docs.microsoft.com/en-us/cpp/preprocessor/comment-c-cpp#lib
Wenn du es Plattform unabhängig machen willst, dann musst du es in der Debug-, bzw. Release-Konfiguration jeweils angeben. Also entweder welche Library verwendet wird oder wie der Name lauten soll.
Hallo,
ich bin neu im Forum und hoffe, das ist die richtige Stelle für meine Frage.
Ich benutze Windows 10 (64bit) und Visual Studio 2019. Jetzt muss ich mit fremden Code arbeiten, welcher (wahrscheinlich) kompatibel ist mit VS2017 und alte Versionen der CGAL und BOOST Bibliotheken benötigt. Ich scheitere jetzt schon seit ein paar Tagen daran diese zu installieren und zu konfigurieren.
Ich habe C++ seit über 10 Jahren nicht benutzt, war nie wirklich drin in der Materie und habe auch noch nie mit externen Bibliotheken gearbeitet. Vielleicht erklärt das, warum es mir so unglaublich schwer fällt den "fertigen" code einfach nur zu kompilieren. Dass es so schwierig ist diese Bibliotheken zum Laufen zu bekommen finde ich aber wirklich sehr befremdlich. Ich hoffe, jemand kann mir helfen.
Ich habe versucht CGAL und BOOST sowohl mithilfe von Setup-Programmen der entsprechenden Websites, als auch vcpkg zu installieren. Mit vcpkg bleibt am Ende u.A. die Fehlermeldung
Cannot open include file: 'CGAL/compiler_config.h':
No such file or directory C:\vcpkg\installed\x86-windows\include\CGAL\config.h 161
Die vcpkg-Website behauptet "In Visual Studio, you can create a New Project (or open an existing one). All installed libraries are immediately ready to be #include'd and used in your project without additional configuration." Anscheinend ist das aber schlichtweg falsch und man muss die Bibliotheken vor der Nutzung konfigurieren? Zur Konfiguration soll anschließend CMake verwendet werden. Ich habe dieses Programm nie benutzt und weiß nicht wie "Konfiguration" eines solchen Pakets gehen soll.
Mit den Setup-Tools werden die Bibliotheken überhaupt nicht von VS erkannt. Ob es dazu irgendwelche Optionen braucht, damit VS die Bibliotheken auf der Festplatte findet, konnte ich bisher nicht herausfinden.
Diverse Tutorials und Anleitungen, nach deren Fehlschlag ich jeweils versucht habe die Spuren der Installationen erst zu entfernen und von vorne anzufangen, waren nicht zielführend und sind womöglich nicht immer ganz korrekt entfernt worden. Kann mir jemand einen Rat geben? Vielen Dank im Voraus.
Nach einer suche mit "visual studio code c++ include library"
fand ich das hier:
https://stackoverflow.com/questions/48090974/custom-library-addition-in-visual-studio-code
@Solix0x sagte in Visual Studio 2019 komisches Klammer Highlighting:
dass bei mir Klammer nur gehighlighted werden, wenn der Cursor links neben der Klammer ist, und rechts neben der Klammer nicht.
Das kann ich so nicht nachvollziehen.
C#: Klammernpaar wird highlighted wenn der Cursor am "spitzen Ende" der jeweiligen geschwungenen Klammer
C++: Klammernpaar wird highlighted wenn der Cursor am "spitzen Ende" der öffnenden geschwungenen Klammer oder am "nicht spitzen Ende" der schließenden Klammer.
Wenns Dir das wert ist schreib' einen Bug-Report. Rechts oben in Visual Studio findest Du eine Sprechblase dafür.
Hallo Th69, Hallo Martin,
sorry für das späte Danke, ich musste das erst aussortieren.
Der Link von Dir, Th69, mit der ersten Antwort - das Bearbeiten von der vcproj Datei - lies mich dann die eingeeiste Abhängigkeit entfernen.
Und nun zum eigentlichen Problem, das wie immer 40cm vor dem Bildschirm sitzt.
Das waren mal alle eigenständige Projekte, die ich irgendwann mal in einer Projektmappe zusammen führte. Eigentlich habe ich an alles gedacht, aber lag dennoch daneben. Die Parameter für den Message Compiler habe ich übersehen anzupassen. Das führte dazu, dass die Ausgabe der IncludeName.h an einem identischen Zielort abgespeichert wurde und, je nachdem wie die parallel arbeitende Erstellungsjobs des VS gerade vorankamen, hat es unter Umständen dort gekracht.
Ähnliches lag im Postbuildereignis->Befehlszeile vergraben.
Ich habe das alles nun korrigiert und muss sagen, läuft endlich wie Lottchen
Nochmals vielen Dank für eure Beiträge.
Gruß
-Uwe