ファイルツールチェーンに永続する未、要約として:CMakeのコマンドラインの定義は、私はcmakeのクロスコンパイラツールチェインファイルを持っている
~/CMakeTest/output $ cmake -DTC_PATH:PATH=/opt/toolchain -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake ../
:私は、ツールチェインファイルだけでなく、TC_PATHを設定し、cmakeのを呼び出す
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)
cmakeがtoolchainファイルを複数回呼び出すようです。私はTC_PATHを設定することができますシェルで恒久的な環境変数の設定の外、どのように、
-- 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)
ので:最初の2時間で、TC_PATHチェックは成功しますが、後に、コンパイラを識別した後、それはエラーをスローしますコマンドラインで変数を変更して、cmake generateコマンドを実行している間にコンテキストに残りますか?
フロリアン、私のツールチェインファイルは、実際にCMAKE_SYSTEM_NAME設定していません。質問をより簡潔にするために、私は「要約」版から除外しました。より完全で正確な質問を提供するために、私は今追加しました。ありがとう。 – gnac