CMAKE_SYSTEM_NAME空白?

abe*_*ier 9 cmake

我正在尝试为Linux编译(使用Generator Eclipse CDT4 - Ninja)但是当我正在检查${CMAKE_SYSTEM_NAME}CMakeLists.txt,我得到的只是空白.

在哪些情况下使用此变量有效?

使用Debian Testing的cmake 3.02.

小智 10

您需要在项目命令后放置CMAKE_SYSTEM_NAME:

message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
project(Foo)
message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
Run Code Online (Sandbox Code Playgroud)

结果:

CMAKE_SYSTEM_NAME: 
-- The C compiler identification is GNU 4.9.1
...
-- Detecting CXX compiler ABI info - done
CMAKE_SYSTEM_NAME: Linux
Run Code Online (Sandbox Code Playgroud)


kgb*_*ook 5

我也有同样的问题,正在解决。

我想做的就是在 Linux 服务器上使用 进行交叉编译aarch64-himix100-linux,并在 Darwin 系统上使用默认工具链进行编译。

我使用CMAKE_HOST_SYSTEM_NAME而不是CMAKE_SYSTEM_NAME

的值CMAKE_HOST_SYSTEM_NAME等于 的输出uname -s

例如,

cmake_minimum_required(VERSION 3.8)

if (NOT ${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin")
    set(CMAKE_TOOLCHAIN_FILE  "${CMAKE_SOURCE_DIR}/Toolchain-aarch64-himix100-linux.cmake")
endif ()

project(phoenix)
Run Code Online (Sandbox Code Playgroud)