cmake:CMAKE_SYSTEM_PROSCESSORが空になったのはどういうことですか?


今日cmakeを実行してMakefileを作成する時変なことが起こりました:CMAKE_SYSTEM_PROCESSORの値は空で繰り返しテストして原因に着きました:私はcmakeを実行する時パラメータ-DCMAKE_SYSTEM_NAME=Linuxを加えました
cmake  . -G "Eclipse CDT4 - Unix Makefiles"  -DCMAKE_SYSTEM_NAME=Linux

cmake公式のクロスコンパイルについての紹介によると、「Cross Compiling for Linux」では、CMAKE_SYSTEM_NAMECMAKE_SYSTEM_PROCESSORがクロスコンパイル時に指定しなければならない2つのパラメータである.
したがって、cmakeコマンドラインでCMAKE_SYSTEM_NAMEが定義されている場合は、以下のようにCMAKE_SYSTEM_PROCESSORも定義する必要があります.
cmake  . -G "Eclipse CDT4 - Unix Makefiles"  \
	-DCMAKE_SYSTEM_NAME=Linux \
	-DCMAKE_SYSTEM_PROCESSOR=x86_64

コマンドラインでCMAKE_SYSTEM_NAMEが定義されているだけであれば、CMAKE_SYSTEM_PROCESSORが空であるという奇妙な問題が発生する.
また、CMakeLists.txtスクリプトでsetコマンドでCMAKE_SYSTEM_NAMEの値を設定した場合、CMAKE_SYSTEM_PROCESSORの値には影響しません.
set(CMAKE_SYSTEM_NAME Linux)