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
@Swordfish sagte in IDE Empfehlungen für Linux:
@wob sagte in IDE Empfehlungen für Linux:
Richtige Programmierer nutzen vi
So ein Quatsch. Die beißen Lochkarten mit den Zähnen aus.
Ok, das stimmt natürlich auch wieder. Da hast du mich überzeugt.
...und noch was:
"-> Die Tipps zum Übertakten habe ich von hier: https://miguelangelantolin.com/raspberry-pi-3-b-overclocking/ (-> Einfach "1550" mit "1500" ersetzen!!)"
Wenn schon übertakten, dann wenigstens den GPU-Speicher auf das Minimum (?) von 16MB setzen, damit ein wenig mehr zum Kompilieren übrig bleibt!
(Siehe vorletzter Post)
Und mit den Übertakten habt ihr recht, damit muss man vorsichtig sein... habe das Raspi (im Gehäuse, aber ohne Deckel) nun in den Serverraum gestellt wo es ein wenig wärmer ist. Und schon macht das Ding Stress. (Exakt gleiches Netzteil & USB-Stromkabel, daran kann es schon mal nicht liegen...)
Das geht so einfach nicht.
Geh wie folgt vor:
Suche die Datei "C:\Users\UserName\AppData\Local\Microsoft\VisualStudio\15.0_a404cb42\privateregistry.bin"
Lade diese Sturktur Datei, dann im Registry Editor. (ich habe es als VS-2017 geladen)
Dann müsstest Du die Einträge hier finden:
HKEY_USERS\VS-2017\Software\Microsoft\VisualStudio\15.0_a404cb42\ApplicationPrivateSettings\Platform\ProjectMRU
Die Pfade sind versionsabhängig.
Die API Funktion, die hinter dem steht ist: RegLoadAppKey
"preLaunchTask": "build" hat alles gelöst in der launch datei
in meinen fall nicht build sondern marvin
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "D:\\Weiteres\\Microsoft VS Code\\projekt\\a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"preLaunchTask": "marvin",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\Weiteres\\Mingw\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
Ich bedanke mich für die Hilfe. Schönen Tag noch
Zur Not kannst du auch direkt -lsomelib reinschreiben. Nicht, dass das gutes cmake wäre, funktioniert aber
Ich habe irgendwo z.B. mal schnell target_link_libraries(testpostgres -lpqxx -lpq) geschrieben, auch wenn man natürlich sonst lieber target_link_libraries(someprogram SomeLib::Whatever) haben sollte.
Edit: ich sollte besser lesen. Geht es hier gar nicht um das Linken einer Library an eine ausführbare Datei, sondern um das erzeugen einer Library selbst? Dann sind meine Hinweise natürlich völlig unzureichend.
Hurra, wieder ein kleiner Erfolg.
Dank eurer Hilfe kann ich nun Programme Builden und Ausführen.
Jetzt ist nur noch ein kleiner Fehler im Programm drinnen, der das Programm beim Ausführen beendet.
Aber das ist denke ich auch lösbar.
Vielen vielen Dank für eure Hilfestellungen und eure guten Tipps.
Weiß auch nicht, warum ich nicht auf dieses Ergebnis gestoßen bin (schlechte Suchbegriffe gewählt ). Die erste Option scheint zu Funktionieren.
Ich werde mich da aber wohl noch mehr einlesen müssen, um das Problem vollständig zu verstehen...
Danke dir.
Hallo,
der Thread hat zwar schon einen langen weißen Bart aber ich bin nun just über diesen gestolpert. Da auch im angloamerikanischen Internetsektor keine Lösung für dieses oft gefragte Problem exponiert wurde, hier mal meine Lösung für die vom Threadersteller eingestellte Frage:
1.) Die WinSDK\Samples\multimedia\directshow\baseclasses erstellen und zwar mit der gleichen Konfiguration wie auch das gewünschte Beispiel erstellt wird.
Der Pitfall ist nämlich die Defaultkonfiguration: Erstellen->Konfigurationsmanager-> „Debug_MBSC“ – richtig heißen muss es aber wie von allen Beispielen vorausgesetzt: „Debug“
Update: Es gibt jetzt zwei weitere Themes:
Ein selbst erstelltes, ist ziemlich "fruchtig"
OneDark Theme vom Atom Editor (inkl. creatortheme). Gefällt mir zur Zeit noch besser als das dunkle VS theme.