GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie CMAKE_INSTALL_PREFIX

Es gibt zwei Möglichkeiten, diese Variable zu verwenden:

  • Übergeben Sie es als Befehlszeilenargument, genau wie Job erwähnt:

    cmake -DCMAKE_INSTALL_PREFIX=< install_path > ..

  • ihm in CMakeLists.txt einen Wert zuweisen :

    SET(CMAKE_INSTALL_PREFIX < install_path >)

    Aber denken Sie daran, es VORHER zu platzieren PROJECT(< project_name>) Befehl, sonst funktioniert es nicht!


Das sollte sein (siehe Dokumentation):

cmake -DCMAKE_INSTALL_PREFIX=/usr ..

Aber denken Sie daran, es VOR dem Befehl PROJECT() zu platzieren, sonst funktioniert es nicht!

Meine erste Woche mit cmake - nach einigen Jahren mit GNU Autotools - lerne ich immer noch (besser als m4-Makros zu schreiben), aber ich denke, CMAKE_INSTALL_PREFIX nach zu ändern Einstellungsprojekt ist der bessere Ort.

CMakeLists.txt

cmake_minimum_required (VERSION 2.8)

set (CMAKE_INSTALL_PREFIX /foo/bar/bubba)
message("CIP = ${CMAKE_INSTALL_PREFIX} (should be /foo/bar/bubba")
project (BarkBark)
message("CIP = ${CMAKE_INSTALL_PREFIX} (should be /foo/bar/bubba")
set (CMAKE_INSTALL_PREFIX /foo/bar/bubba)
message("CIP = ${CMAKE_INSTALL_PREFIX} (should be /foo/bar/bubba")

Erste Ausführung (kein Cache)

CIP = /foo/bar/bubba (should be /foo/bar/bubba
-- The C compiler identification is GNU 4.4.7
-- etc, etc,...
CIP = /usr/local (should be /foo/bar/bubba
CIP = /foo/bar/bubba (should be /foo/bar/bubba
-- Configuring done
-- Generating done

Zweiter Lauf

CIP = /foo/bar/bubba (should be /foo/bar/bubba
CIP = /foo/bar/bubba (should be /foo/bar/bubba
CIP = /foo/bar/bubba (should be /foo/bar/bubba
-- Configuring done
-- Generating done

Lassen Sie mich wissen, wenn ich mich irre, ich muss noch viel lernen. Es macht Spaß.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Wie verwendet Systemd /etc/init.d-Skripte?

  3. Wann sollte ich einen abschließenden Schrägstrich in einem Verzeichnis verwenden?

  4. Ist Rsync ~/foo Target/foo dasselbe wie Rsync ~/foo/Target/foo/?

  5. Wie zeige ich nur Dateien aus dem Befehl aws s3 ls an?

Wie viel Swap sollten Sie unter Linux verwenden?

So verwenden Sie Ubuntu

Wie benutzt man dos2unix?

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie bestimmt man die maximale CPU-Geschwindigkeit eines Prozessors in Linux?

Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?