Das ganze lässt sich auf deutlich weniger reduzieren.
Aber die Datei lässt sich abkürzen auf:
Setze C++17 als Standard, falls nicht in Commandline
Setze auf Release Build, falls nicht gesetzt
Deklarier ein Projekt
Zum Projekt gehört eine executable aus folgenden Dateien: [...]
Setze Compileroptionen für debug und release modus
Hier ist eine "Liste"/Tutorial der wichtigsten Funktionen:
(linken, sourcen hinzufügen, compiler optionen)
https://cmake.org/cmake/help/latest/guide/tutorial/index.html
Ich würde aber erstmal klein anfangen und dann schaun was du brauchst und das googlen. Das meiste kann man sich auch auf Stackoverflow erstmal zusammenpuzzeln.
Bei Verzweiflung gibts ja noch das Forum und die CMake Webseite.
Außerdem kannst du den Rat "nicht dateien mit GLOB hinzufügen" erstmal ignorieren. Das ist hauptsächlich relevant wenn man CMake nicht immer wieder ausführt und sich auf die inkrementellen Builds von make verlässt.
Das säh dann so aus:
# Sucht alle Dateien mit Endung .cpp rekursiv im Projektverzeichnis zusammen und fügt sie zu sources.
file(GLOB_RECURSE sources "*.cpp")
# Add executable
add_executable(${PROJECT_NAME} ${sources})
@Leon0402 sagte in Welche IDE:
Auf Linux
@LotosKaiser04 sagte in Welche IDE:
Ich nutze auch Windows neben Linux also ich hab kein Problem damit Windows zu benutzen, wie heißen den die Programme die du kennst?
Hm...,
mit dem angelegten User Jenkins auf dem Git-PC bekomme ich auch keine Verbindung. Also weitersuchen, trotzdem vielen Dank für die Hilfe.
lg Torsten
Schreibe bitte in eine Zeile vor Deinem Code ``` und in eine Zeile nach Deinem Code ```. Alternativ markiere Deinen Code und klicke auf das </> in der Symbolleiste über dem Bearbeitungsfenster.
Du kannst Deinen Beitrag nachträglich noch bearbeiten. Den Menüpunkt Bearbeiten findest Du hinter dem Drei-Punkte-Menü rechts unter Deinem Beitrag.
@Bashar sagte in Microsoft Visual Studio LNK2019 und LNK1120 Fehler:
Copy&Paste der Fehlermeldung hätte es übrigens auch getan.
Nicht "hätte es getan". Wäre besser gewesen
Genau, ich möchte sozusagen nach der Verzeichnis Hierarchie und dem Dateinamen sortieren. Habe es jetzt mal so versucht:
IncludeCategories:
- Regex: '^(<|")[^/]*(>|")$'
Priority: 1
- Regex: '^(<|")[^/]*/[^/]*(>|")$'
Priority: 2
- Regex: '^(<|")[^/]*/[^/]*/[^/]*(>|")$'
Priority: 3
Bzw. auch die inverse Reihenfolge, allerdings werden die Include-Verzeichnisse so noch falsch sortiert:
#include "A.h"
#include "B.h"
#include "A/A.h"
#include "A/B.h"
#include "Z/A.h"
#include "Z/B.h"
#include "A/B/A.h"
#include "A/B/B.h"
#include "Z/Z/A.h"
#include "Z/Z/B.h"
So sollte es mal aussehen:
#include "A.h"
#include "B.h"
#include "A/A.h"
#include "A/B.h"
#include "A/B/A.h"
#include "A/B/B.h"
#include "Z/A.h"
#include "Z/B.h"
#include "Z/Z/A.h"
#include "Z/Z/B.h"
Ich denke man bräuchte evtl. ein rekursives Regex :).
Nach einer kompletten cleanen Neuinstallation von Visual Studio 2019 Community ist der Fehler behoben. Ich hatte Visual Studio 2019 schon fast ein Jahr installiert. Vielleicht hat sich bei den diversen Updates ein Fehler in der Compiler und Debugger Installation eingeschlichen. Das kann ich jetzt nicht mehr nachvollziehen.
Vielen Dank an alle,
Bernd
@Bushmaster sagte in (g)c++ compiler von cygwin oder mingw für npm-gyp nutzen?:
@manni66 sagte in (g)c++ compiler von cygwin oder mingw für npm-gyp nutzen?:
Auch das habe ich nicht behauptet.
aber vermutet.
Nein
Keine Ahnung erhlich gesagt. Denn: zirkuläre Abhängigkeiten sind Schmarrn. Das lässt man am besten einfach. Und genau das wäre auch was ich dir empfehlen würde.
ich hab mich heute weiter mit vs community 2019 auseinandergesetzt. wie gesagt ist die node-unterstützung total super.
nun wollte ich es mal auf die spitze treiben. auf github findet man die quellcodes des alten windows 3.11 file managers. ich habe sie direkt von der ide aus gecloned und vs hat auch gleich versucht eine projektmappe daraus zu bauen. natürlich erstmal mit dutzenden von errors. das lag aber zumeist an absoluten pfaden, die der ersteller des repositories drin hatte. der hammer war ein verweis auf "c:\administrator\libs\ntdll.lib" (oder so) in einer projektdatei für ein älteres visual studio. vs 2019 hatte diese ausgewertet und wollte unbedingt diese lib in diesem verzeichnis haben. war schwer zu finden, denn die 'find in files'-funktion hatte diese datei ausgelasen. aber nun geht alles.
übrigens ist der filemanager uralter c-code, noch vor c90. dass vs 2019 den noch compilieren kann, ist ein weiteres lob wert.
ach ja, der win311-filemanager ist inzwischen open source. microsoft selbst hat ihn ebenfalls auf github veröffentlicht.
einziger wermutstropfen bisher: ich wollte eine optionale extension für javascript installieren, doch vs2019 wollte vorher ohne ende gigabytes an dotnet-bibliotheken runterladen. das habe ich dann besser sein gelassen. ich vermute mal, das liegt nicht an vs, sondern am entwickler der extension. die hat er wohl quick and dirty in c# gecodet.
Hallo,
ich arbeite mich derzeit in die GNU Autotools ein. Ich bin soweit gekommen, dass ich ein Projekt unter Windows UND Linux übersetzen und auch ausführen kann. So weit so gut.
Ich nutze in dem Zusammenhang auch die TestSuite von GNU. Sie laufen auch wunderbar unter Windows, nur unter Linux nicht. Das Problem liegt auf der Hand, eines der Scripte ist beispielhaft folgendermaßen aufgebaut:
AT_SETUP([Version class size])
AT_KEYWORDS([version size])
AT_CHECK([../../unittest/src/version/classsize.exe], [0], [], [])
AT_CLEANUP
Die GNU AutoTools bieten doch sicherlich die Möglichkeit, eine Art Platzhalter für die Dateierweiterung einzusetzen, oder? Falls nicht, wie könnte ich das Problem in den Griff bekommen?
Vielen Dank im Voraus
Torsten
Hat sich schon jemand näher damit beschäftigt?
Die Files Übersicht ist auf jeden Fall schon mal interessant.
Was ich noch gesehen habe, sind irgendwelche Funktionen, die lang brauchen. Aber woran liegt das? Ich fand das nicht immer einleuchtend. Gibt´s dazu noch mehr Infos, die ich übersehen habe?
Ach ja, und noch weiteres Randdaten zum System: Debian 9 Stretch mit backports-Kernel. Läuft als Server auf VirtualBox und wird mit "xrdp" über die Windows-Remotedesktopverbindung angesprochen.
Grüsse, Jan