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)
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)
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!