Problem bei der Verwendung von Cmake in Unterverzeichnisse nach noch mit cmake auf das gesamte Projekt
Ich habe den Kopf Ordner namens Tutorial und sub-Ordner mit dem Namen MathFunctions jeweils mit einem code
Ich schrieb CMakeLists.txt für beide Ordner und verwendet cmake in cmd promptand es ist in Ordnung.
CMakeLists.txt im Haupt-Ordner hat den folgenden:
CMAKE_MINIMUM_REQUIRED ( VERSION 2.6)
PROJECT (Tutorial)
SET (Tutorial_VERSION_MAJOR 1)
SET (Tutorial_VERSION_MINOR 0)
CONFIGURE_FILE (
"${PROJECT_SOURCE_DIR}/TutorialConfig.h.in"
"${PROJECT_BINARY_DIR}/TutorialConfig.h "
)
INCLUDE_DIRECTORIES ("${PROJECT_BINARY_DIR}")
OPTION (USE_MYMATH "Use tutorial provided math implementation" ON)
if (USE_MYMATH)
INCLUDE_DIRECTORIES ("${PROJECT_SOURCE_DIR}/MathFunctions")
ADD_SUBDIRECTORY (MathFunctions)
SET (EXTRA_LIBS ${EXTRA_LIBS} MathFunctions)
endif (USE_MYMATH)
ADD_EXECUTABLE (Tutorial tutorial.c)
TARGET_LINK_LIBRARIES (Tutorial ${EXTRA_LIBS})
CMakeLists.txt in sub-Ordner hat den folgenden:
CMAKE_MINIMUM_REQUIRED ( VERSION 2.6)
add_library (MathFunctions mysqrt.c )
und in der Eingabeaufforderung :
C:\home\Tutorial\BUILD>cmake ..
-- Building for: Visual Studio 9 2008
-- Check for working C compiler using: Visual Studio 9 2008
-- Check for working C compiler using: Visual Studio 9 2008 --
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 9 2008
-- Check for working CXX compiler using: Visual Studio 9 2008
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/home/Tutorial/BUILD
Später machte ich einige änderungen in MathFunctions.c .Ich habe keine änderungen in der Anleitung.c. Also ich möchte wieder generieren von Dateien, die nur für MathFunctions Ordner. Aber ich bin nicht in der Lage, es zu tun. Ich erhalte die folgende Fehlermeldung
C:\home\Tutorial\BUILD>cmake ../MathFunctions
CMake-Fehler: Die Quelle "C:/home/Tutorial/MathFunctions/CMakeLists.txt" nicht mit der Quelle "C:/home/Tutorial/CMakeLists.txt" zum erzeugen des cache. Re cmake mit einem anderen Quellcode-Verzeichnis.
Ich kann nicht herausfinden, warum dieser Fehler kommt.
Bitte helfen
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie änderungen an einer Quelldatei, die bereits in das Projekt, gibt es keine Notwendigkeit, neu zu starten CMake. Nur neu kompilieren.
OK, ich weiß, das ist uralt, aber...hatte ein ähnliches problem, gleiche Fehlermeldung.
Gibt es einen Befehl unter Datei auf die GUI, reinigt den cache. Dies hat nicht funktioniert die erste Zeit, aber schließlich Tat er es. Ich prügelte ein bisschen herum, hinzufügen von cmake, um die Benutzer Weg, Neustart, weiß nicht, ob allen, die geholfen haben.
Ich in Schwierigkeiten geriet zunächst, indem Sie versuchen, cmake auf eine CMakeLists.txt das war NICHT die Wurzel. Dieser Fehler auftauchte, wenn ich versuchte es erneut mit der richtigen source-Verzeichnis. V3.1.3.
Entfernen Sie einfach
Ordner von deinem Projekt und synchronisieren Sie Sie erneut. Dadurch entfernen Sie cache.