Was CMake-variable wird verwendet, um die C++ Standard Library in XCode?
Ich habe einen reinen C++11-DLL (Keine Abhängigkeiten jeglicher Art) ich habe schon in der Lage zu kompilieren unter Linux und Windows für einige Zeit nun mit CMake zu generieren, die Projekt-Dateien und machen/MSVC kompiliert, die in den jeweiligen nativen system.
Möchte ich auf OSX kompilieren jetzt, und ich habe eine Menge Probleme bekommen, CMake, um die richtige Projekt-Einstellungen in XCode zu kompilieren Sie die DLL.
Software-Versionen:
XCode v5.0
CMake v2.8.12
Den entsprechenden CMake-Skript-code:
# Set output directory if Apple OSX:
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
message("CMAKE HAS DETECTED A OSX SYSTEM - BUILDING FOR XCODE!")
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=c++0x -stdlib=libc++")
IF(CMAKE_BUILD_TYPE MATCHES Release)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../bin/OSX/Release)
ENDIF(CMAKE_BUILD_TYPE MATCHES Release)
IF(CMAKE_BUILD_TYPE MATCHES Debug)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../bin/OSX/Debug)
ENDIF(CMAKE_BUILD_TYPE MATCHES Debug)
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
Jedoch die Einstellungen nicht richtig durch gekommen, in der XCode-Projekt-Datei:
Können Sie sehen, dass die CMake-Befehle machen Ihren Weg in die 'Andere C++ Flags" - Bereich. Aber XCode wird immer noch nicht kompilieren. Jedoch, wenn ich den "C++ Standard Library" - variable auf "libc++" es wird kompilieren in Ordnung.
Hinweis: ich könnte den compile-error-logs, aber ich denke, dass die oben genannten, korrekt identifiziert die Ursache - ich muss nur wissen, was CMake-Befehl tatsächlich setzt die richtigen XCode Eigentum über.
- Wahrscheinlich haben Sie schon gesehen stackoverflow.com/questions/7879630/... . Trotzdem, es sieht aus, dass xcode in der neueren version mit Maverks dreht sich auf C++11 Standard.
- Yep. Nicht helfen, leider.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für ein minimal-test-Projekt das folgende macht den job:
Vielleicht ist es sich mit der folgenden Zeile:
Auch eine Bemerkung zu dieser Zeile gibt es die
${CMAKE_C_FLAGS}
auf Absicht, oder hast du wirklich meinst${CMAKE_CXX_FLAGS}
?können Sie set_property