Forum: Compiler & IDEs linux: pfad zu cmake ist kapputt


von Schnurtelefon (Gast)


Lesenswert?

Guten Tag,

auf einmal funktioniert mein Visual Studio nicht mehr, weil mindestens 
CMake 3.9 gefordert wird.
1
CMake 3.9 or higher is required.  You are running version 3.3.2

1
Distributor ID:  Ubuntu
2
Description:  Ubuntu 20.04.3 LTS
3
Release:  20.04
4
Codename:  focal

meine Version von VSC greift zu auf:
1
$ cmake --version
2
cmake version 3.3.2
die sudo version ist wohl:
hatte aber gerad noch 3.22, hab nur einiges schon probiert.
Es wurde aber immer nur die sudo Version geändert
1
$ sudo cmake --version
2
cmake version 3.12.1

also irgendwie muss ich doch den Standardpfad ändern zu CMake oder?

Das VSCode Projekt hat eigentlich nichts mit Xilinx zu tun .. Wird aber 
beim Pfad angezeigt.
Habe letztens auch was von X. installiert. Da wurde wohl etwas 
überschrieben :(
1
$ which cmake
2
/tools/Xilinx19//SDK/2019.1/tps/lnx64/cmake-3.3.2/bin/cmake

1
$ sudo which cmake
2
/usr/local/bin/cmake

werde jetzt mal sowas probieren ...

 export PATH=~/usr/cmake-path/bin:$PATH

von abc (Gast)


Lesenswert?

Du könntest mittels `printenv` schauen ob irgendwas deinen Pfad 
überschrieben hat. Das erklärt warum im sudo kontext das im system 
installierte Cmake verwendet wird.

von Johannes S. (Gast)


Lesenswert?

ist cmake eventuell über snap installiert? Das funktioniert(e?) mit VSC 
nicht richtig.

von Schnurtelefon (Gast)


Lesenswert?

also es hat ja die ganze Zeit funktioniert mit meinem VSC Projekt. Dann 
habe ich an einer anderen Sache gearbeitet, bin nach ein paar Tagen 
wieder zurück zu diesem Projekt und auf einmal hat der dabei Probleme.


In VSC settings.json
steht unter cmakePath:
1
// Name/path of the CMake executable to use.
2
  "cmake.cmakePath": "cmake",

Habe heute auf verschiedenste Weisen versucht CMake upzudaten...
Aber das einzige was ich verändern konnte war sudo CMake...

also bei printenv gibt es laut ~$ printenv | grep cmake
nur einen CMake eintrag.
Also das was auch bei which cmake rauskommt.

Johannes S. schrieb:
> ist cmake eventuell über snap installiert? Das funktioniert(e?) mit VSC
> nicht richtig

Wenn dann habe ich das nicht mehr mitbekommen heute...

von Schnurtelefon (Gast)


Lesenswert?

werde jetzt cmake 3.12 runterladen und in tools reintun.
Dann eine pfad via export in $PATH hinzufügen dort hin.
dann hoffen das vsc das diesmal findet....
weil ich einfach hoffe, dass vsc die passende version verwendet...

 https://www.claudiokuenzler.com/blog/796/install-upgrade-cmake-3.12.1-ubuntu-14.04-trusty-alternatives

von Arno (Gast)


Lesenswert?

Da hat Xilinx sich vorne in den (User-)Pfad geschrieben...

Schau mal in .profile, .bashrc sowie /etc/profile.d/ wo PATH um den 
Xilinx-Pfad ergänzt wird und schreib dort statt 
PATH=/tools/Xilinx19//SDK/2019.1/tps/lnx64/cmake-3.3.2/bin/:$PATH neu 
PATH=$PATH:/tools/Xilinx19//SDK/2019.1/tps/lnx64/cmake-3.3.2/bin/

Dann wird allerdings Xilinx möglicherweise nicht mehr funktionieren, 
wenn das kaputterweise auf cmake-3.3.2 angewiesen ist...

MfG, Arno

von Schnurtelefon (Gast)


Lesenswert?

Arno schrieb:
> Schau mal in .profile, .bashrc sowie /etc/profile.d/ wo PATH um den
> Xilinx-Pfad ergänzt wird und schreib dort statt

in .profile :
(habe ich sogar selber mal hinzugefügt:)
1
source /tools/Xilinx19/Vivado/2019.1/settings64.sh
ist es das?

Bei den anderen habe ich nichts gefunden.
bzw. in profile.d habe ich nicht die Skripte angeschaut - kommen mir 
gerade noch unbekannt vor.

von Schnurtelefon (Gast)


Lesenswert?

Schnurtelefon schrieb:
> ist es das?

naja

von Arno (Gast)


Lesenswert?

Source bedeutet: Der Inhalt der dort angegebenen Datei wird an dieser 
Stelle mit eingeladen.

Also vermutlich ja, wenn du das rausnimmst (und dich aus- und wieder 
einloggst) wird das System das richtige cmake finden.

Alternativ kannst du in der eingebundenen tools.../settings64.sh 
schauen, wie dort PATH gesetzt wird, und das korrigieren.

MfG, Arno

von Rolf M. (rmagnus)


Lesenswert?

Schnurtelefon schrieb:
> Das VSCode Projekt hat eigentlich nichts mit Xilinx zu tun .. Wird aber
> beim Pfad angezeigt.
> Habe letztens auch was von X. installiert. Da wurde wohl etwas
> überschrieben :($ which cmake
> /tools/Xilinx19//SDK/2019.1/tps/lnx64/cmake-3.3.2/bin/cmake
>
> $ sudo which cmake
> /usr/local/bin/cmake

Das sind eigentlich beides nicht die Pfade des vom System installierten 
cmake. Das müsste in /usr/bin liegen und bei Ubuntu 20.04 die Version 
3.16.3 sein.

Schnurtelefon schrieb:
> 
https://www.claudiokuenzler.com/blog/796/install-upgrade-cmake-3.12.1-ubuntu-14.04-trusty-alternatives

Das ist steinalt.

> werde jetzt cmake 3.12 runterladen und in tools reintun.

Gibt es einen speziellen Grund, warum statt einfach das cmake vom System 
zu verwenden, lieber irgendwas uraltes irgendwo hin installierst, Pfade 
verbiegst u.s.w.?

: Bearbeitet durch User
von Schnurtelefon (Gast)


Lesenswert?

1
/usr/bin$ cmake --version
2
CMake Error: Could not find CMAKE_ROOT !!!
3
CMake has most likely not been installed correctly.
4
Modules directory not found in
5
/usr/share/cmake-3.3
6
cmake version 3.3.2

von Schnurtelefon (Gast)


Lesenswert?

ok nachdem ich das source weggemacht habe habe ich 3.12 drauf. 
Allerdings sagt vsc jetzt ich brauche 3.15.
1
CMake 3.15 or higher is required.  You are running version 3.12.1
2
[cmake]

habe gerade das versucht, ging aber nicht:
https://askubuntu.com/questions/829310/how-to-upgrade-cmake-in-ubuntu
:)



By default the CMake will be installed in:
  "/opt/cmake-3.22.1-linux-x86_64"
Do you want to include the subdirectory cmake-3.22.1-linux-x86_64?
Saying no will install in: "/opt" [Yn]:
y

Using target directory: /opt/cmake-3.22.1-linux-x86_64
Extracting, please wait...


Unpacking finished successfully

**/opt$ sudo ln -s cmake-3.22.1-linux-x86_64.sh /usr/local/bin**

/opt$ cmake -version

cmake version 3.12.1

von Schnurtelefon (Gast)


Lesenswert?

/usr/local/bin$ sudo chmod -R 777 cmake-3.22.1-linux-x86_64.sh
chmod: cannot access 'cmake-3.22.1-linux-x86_64.sh': Too many levels of 
symbolic links

"is broken?"

von Schnurtelefon (Gast)


Lesenswert?

ach so der letzte Befehl ln -s soll wohl einen "symbolischen link" in 
den Ordner /usr/local/bin erstellen.
Habe die *.sh Installations-Datei diesmal direkt in den Ordner gelegt 
aber wenn ich das ausführen möchte steht dort dass die Dateien schon 
existieren :(

obwohl ich schon
1
sudo apt remove cmake

gemacht habe :(
1
/usr/local/bin$ sudo ln -s cmake-3.22.1-linux-x86_64/bin/* .
2
ln: failed to create symbolic link './ccmake': File exists
3
ln: failed to create symbolic link './cmake': File exists
4
ln: failed to create symbolic link './cmake-gui': File exists
5
ln: failed to create symbolic link './cpack': File exists
6
ln: failed to create symbolic link './ctest': File exists

von Rolf M. (rmagnus)


Lesenswert?

Schnurtelefon schrieb:
> /usr/bin$ cmake --version
> CMake Error: Could not find CMAKE_ROOT !!!
> CMake has most likely not been installed correctly.
> Modules directory not found in
> /usr/share/cmake-3.3
> cmake version 3.3.2

Hmm, deine Installation ist ziemlich vermurkst. Eine Version 3.3.2 
sollte dort eigentlich überhaupt nicht liegen. Schon gar nicht ohne die 
dazugehörenden Daten. Versuche mal in der Konsole ein:
1
sudo apt reinstall cmake
und falls das erfolgreich ausgeführt werden konnte, probiere nochmal, 
/usr/bin/cmake auszuführen.

Schnurtelefon schrieb:
> **/opt$ sudo ln -s cmake-3.22.1-linux-x86_64.sh /usr/local/bin**

Warum willst du das Installationsskript nach /usr/local/bin verlinken?

Schnurtelefon schrieb:
> /usr/local/bin$ sudo chmod -R 777 cmake-3.22.1-linux-x86_64.sh
> chmod: cannot access 'cmake-3.22.1-linux-x86_64.sh': Too many levels of
> symbolic links

Anscheinend hast du einen Symlink erzeugt, der auf sich selbst zeigt.

Es wirkt ein bisschen, als ob du einfach wahllos irgendwelche Kommandos 
eingibst, in der Hoffnung, dass das nachher geht. Das erklärt auch, 
warum deine Installation so kaputt ist.

Schnurtelefon schrieb:
> Habe die *.sh Installations-Datei diesmal direkt in den Ordner gelegt
> aber wenn ich das ausführen möchte steht dort dass die Dateien schon
> existieren :(

Wo der Installer liegt, ist doch vollkommen egal.

> obwohl ich schon
> sudo apt remove cmake
>
> gemacht habe :(
> /usr/local/bin$ sudo ln -s cmake-3.22.1-linux-x86_64/bin/* .
> ln: failed to create symbolic link './ccmake': File exists
> ln: failed to create symbolic link './cmake': File exists
> ln: failed to create symbolic link './cmake-gui': File exists
> ln: failed to create symbolic link './cpack': File exists
> ln: failed to create symbolic link './ctest': File exists

Weil das System-cmake (das ich dir immer noch dringend empfehlen würde - 
das ist mit 3.16 auch neu genug) nicht in /usr/local, sondern in /usr 
liegt. Abgesehen davon brauchst du die Files nirgends hin verlinken. Es 
würde reichen, das installierte bin-Verzeichnis in den PATH aufzunehmen 
(vor den Verzeichnissen von all den anderen vermurksten Installationen).

: Bearbeitet durch User
von Schnurtelefon (Gast)


Lesenswert?

habe gerade noch mal einen export davon gemacht und dann code aus der 
gleichen shell console aufgerufen...
jetzt wird von VSC doe passende Version gefunden.
1
/usr/local/bin/cmake-3.22.1-linux-x86_64/bin$ export "PATH=/usr/local/bin/cmake-3.22.1-linux-x86_64/bin:${PATH}"
wenn ich das in dem install Ordner ausführe kommt jetzt auch
1
cmake --version
2
cmake version 3.22.1

(Wenn man (visualstudio) "code" über den Desktop-Link aufruft wurde noch 
keine aktuelle Version gefunden. Zumindest sah das gerade so aus. Muss 
ich noch mal schauen.)

....
hi, sehe deine Anmerkungen gerade erst.
Werde erst mal vscode so weiter nutzen.
Und dann deine Schritte probieren.

Rolf M. schrieb:
> sudo apt reinstall cmake
> und falls das erfolgreich ausgeführt werden konnte, probiere nochmal,
> /usr/bin/cmake auszuführen.

 usw.

von Rolf M. (rmagnus)


Lesenswert?

Schnurtelefon schrieb:
> habe gerade noch mal einen export davon gemacht und dann code aus der
> gleichen shell console aufgerufen...
> jetzt wird von VSC doe passende Version gefunden.
> /usr/local/bin/cmake-3.22.1-linux-x86_64/bin$

Ach so, du hast nicht das Installationsskript in /usr/local/bin liegen, 
sondern das gesamte cmake-Verzeichnis. Nun gut, das ist auch eher - 
sagen wir mal unkonventionell.

export
> "PATH=/usr/local/bin/cmake-3.22.1-linux-x86_64/bin:${PATH}"
> wenn ich das in dem install Ordner ausführe kommt jetzt auchcmake
> --version
> cmake version 3.22.1
>
> (Wenn man (visualstudio) "code" über den Desktop-Link aufruft wurde noch
> keine aktuelle Version gefunden. Zumindest sah das gerade so aus. Muss
> ich noch mal schauen.)

Naja, deine Änderung von PATH wirkt nur in der Shell, in der du sie 
gemacht hast und deren Kind-Prozessen.

von Richter (Gast)


Lesenswert?

Rolf M. schrieb:
> Schnurtelefon schrieb:
>> Das VSCode Projekt hat eigentlich nichts mit Xilinx zu tun .. Wird aber
>> beim Pfad angezeigt.

>> Habe letztens auch was von X. installiert. Da wurde wohl etwas
>> überschrieben :($ which cmake
>> /tools/Xilinx19//SDK/2019.1/tps/lnx64/cmake-3.3.2/bin/cmake
>>
>> $ sudo which cmake
>> /usr/local/bin/cmake
>

> Das sind eigentlich beides nicht die Pfade des vom System installierten
> cmake. Das müsste in /usr/bin liegen und bei Ubuntu 20.04 die Version
> 3.16.3 sein.
>
> Schnurtelefon schrieb:
>>
> 
https://www.claudiokuenzler.com/blog/796/install-upgrade-cmake-3.12.1-ubuntu-14.04-trusty-alternatives
>
> Das ist steinalt.

>
>> werde jetzt cmake 3.12 runterladen und in tools reintun.
>
> Gibt es einen speziellen Grund, warum statt einfach das cmake vom System
> zu verwenden, lieber irgendwas uraltes irgendwo hin installierst, Pfade
> verbiegst u.s.w.?

Windows User halt…

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.