mac_x86_toolchain.cmake
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
# GCC
find_program(X86_64 x86_64-elf-gcc REQUIRED)
if (NOT X86_64)
message(FATAL_ERROR "x86_64-elf-gcc not found.\n"
"Run `brew install x86_64-elf-gcc` to install the toolchain.")
else ()
message(STATUS "Found x86_64-elf-gcc ${X86_64}.")
endif ()
set(TOOLCHAIN_PREFIX x86_64-elf-)
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc)
set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy)
通过.cmake设置不同环境下的编译工具链,mac环境下的工具链如上图所示。
另外说明一下,本人用的是64位的x86机器,如果使用的是32位的机器,那就需要根据情况来设定,看到这里,有很多读者可能会问,MAC电脑下自带gcc版本,为什么要用x86_64-elf-gcc呢,因为MAC电脑下的gcc只支持MAC系统下的文件系统,不认elf文件系统,那我们要写一个类似Linux的内核,肯定要用到它的文件系统,而gcc早就帮我们想到了这一点,所以其提供了跨平台的编译器----x86_64-elf-gcc,这样我们编译链接运行出来的就是el