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
Freigeben: 2024-12-06 10:20:16
Original
930 Leute haben es durchsucht

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)
Nach dem Login kopieren

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

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})
Nach dem Login kopieren

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

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage