Heim > Backend-Entwicklung > C++ > Wie definiere ich Präprozessormakros effektiv in CMake?

Wie definiere ich Präprozessormakros effektiv in CMake?

DDD
Freigeben: 2024-11-30 07:01:15
Original
839 Leute haben es durchsucht

How to Effectively Define Preprocessor Macros in CMake?

Präprozessormakros mit CMake definieren

Das Definieren von Präprozessorvariablen mit CMake hat sich im Laufe der Zeit weiterentwickelt. Sehen wir uns an, wie man es effektiv macht.

add_definitions

Zuvor verließ sich CMake zu diesem Zweck hauptsächlich auf den Befehl add_definitions. Der entsprechende C-Code wäre #define foo.

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

add_compile_definitions

Ab CMake Version 3.12 bietet der Befehl add_compile_definitions jedoch einen verfeinerten Ansatz. Es zielt speziell auf Kompilierungsdefinitionen ab und trennt sie von Include-Verzeichnissen und Compiler-Optionen.

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

Vorteile von add_compile_definitions

Dieser neuere Ansatz macht Tricks überflüssig, die häufig bei verwendet werden add_definitionen. Es bietet eine strukturiertere und fehleranfälligere Möglichkeit, Kompilierungsdefinitionen zu verwalten.

Zielspezifische Definitionen

Wie Jim Hunziker erwähnte, können Sie auch Präprozessormakros auf a definieren Pro-Ziel-Basis. Weitere Einzelheiten finden Sie in seiner Antwort.

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

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage