Ich habe eine Cmake Cross-Compiler Toolchain-Datei, Kurz als:CMake Command Line Definitionen Verewigung Nichtsein Toolchain Datei
set(CMAKE_SYSTEM_NAME Linux)
if(DEFINED TC_PATH)
message(STATUS " TC_PATH IS defined. ${TC_PATH}")
else()
message(FATAL_ERROR " TC_PATH not defined.")
endif()
set(CMAKE_C_COMPILER ${TC_PATH}/usr/bin/i586-linux/i586-linux-gcc)
set(CMAKE_CXX_COMPILER ${TC_PATH}/usr/bin/i586-linux/i586-linux-g++)
set(CMAKE_LINKER ${TC_PATH}/usr/bin/i586-linux/i586-linux-ld)
Ich nenne cmake, die TC_PATH sowie die Toolchain-Datei festlegen:
~/CMakeTest/output $ cmake -DTC_PATH:PATH=/opt/toolchain -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake ../
Es scheint, dass cmake die Toolchain-Datei mehrmals aufruft. Auf der ersten zwei Zeit gelingt es der TC_PATH überprüfen, aber später, nach dem Compiler identifiziert, wirft es einen Fehler:
-- TC_PATH IS defined. /opt/toolchain
-- TC_PATH IS defined. /opt/toolchain
-- The C compiler identification is GNU 4.9.1
-- The CXX compiler identification is GNU 4.9.1
-- Check for working C compiler: /opt/toolchain/usr/bin/i586-linux/i586-linux-gcc
CMake Error at /home/gnac/CMakeTest/toolchain.cmake:4 (message):
TC_PATH not defined.
Call Stack (most recent call first):
/home/gnac/CMakeTest/output/CMakeFiles/3.0.2/CMakeSystem.cmake:6 (include)
CMakeLists.txt:2 (project)
also außerhalb ein permanentes Umgebungsvariable in der Shell-Einstellung, wie ich die TC_PATH einstellen Variable über die Kommandozeile, so dass sie beim Ausführen des Befehls cmake generate im Kontext bleibt?
Florian, meine Toolchain-Datei hat in der Tat gesetzt CMAKE_SYSTEM_NAME. Ich habe es aus der "gekürzten" Version herausgelassen, um die Frage präziser zu halten. Ich habe es jetzt hinzugefügt, um eine vollständigere/korrekte Frage zu stellen. Vielen Dank. – gnac