Heim >Backend-Entwicklung >C++ >Wie definiere ich Präprozessormakros in CMake mit dem empfohlenen Ansatz?

Wie definiere ich Präprozessormakros in CMake mit dem empfohlenen Ansatz?

Susan Sarandon
Susan SarandonOriginal
2024-12-06 10:20:16900Durchsuche

How to Define Preprocessor Macros in CMake Using the Recommended Approach?

Präprozessormakros in CMake definieren

Entwickler verlangen häufig, dass Präprozessormakros für ihre CMake-Projekte festgelegt werden. Traditionell stellte CMake zu diesem Zweck den Befehl add_definitions bereit. Seit CMake Version 3.12 wurde jedoch ein neuer Ansatz mit separaten Befehlen für Kompilierungsdefinitionen, Include-Verzeichnisse und Compiler-Optionen eingeführt.

Verwendung des neuen Ansatzes

Zu Um ein Präprozessormakro mit der neuen Syntax zu definieren, verwenden Sie den Befehl add_compile_definitions als folgt:

add_compile_definitions(MACRO_NAME=VALUE)

Um beispielsweise das Makro OPENCV_VERSION zu definieren, würden Sie schreiben:

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})

Sie können auch mehrere Makros in einem einzigen Befehl definieren:

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)

Vorteile

Dieser neue Ansatz bietet mehrere Vorteile gegenüber add_definitions Befehl:

  • Es bietet eine bessere Kontrolle über die Definitionen, die auf verschiedene Teile Ihres Projekts angewendet werden.
  • Es vermeidet die Möglichkeit, Makros zu definieren, die nicht für ein bestimmtes Ziel gedacht sind.
  • Es entspricht den Best Practices für die CMake-Entwicklung, wie in der CMake-Dokumentation erläutert (https://cmake.org/cmake/help/latest/command/add_definitions.html).

Hinweis: Wie in der Dokumentation angegeben, wird dies nicht empfohlen Verwenden Sie nicht mehr den Befehl add_definitions.

Das obige ist der detaillierte Inhalt vonWie definiere ich Präprozessormakros in CMake mit dem empfohlenen Ansatz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn