我有两件事无法弄清楚。
(1)使用时CMake-GUI
,我们可以指定makefile生成器。我将使用 Debian Linux 交叉编译 Raspberry PI。我找不到相关的生成器。我必须选择哪种发电机?
我有toolchain-rpi.cmake
如下。
INCLUDE(CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME Linux) # this one is important
SET(CMAKE_SYSTEM_VERSION 1) # this one not so much
SET(CMAKE_C_COMPILER $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-g++)
SET(CMAKE_AR $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-ar)
SET(CMAKE_LINKER $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-ld)
SET(CMAKE_NM $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-nm)
SET(CMAKE_OBJCOPY $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-objcopy)
SET(CMAKE_OBJDUMP $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-objdump)
SET(CMAKE_STRIP $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-strip)
SET(CMAKE_RANLIB $ENV{RPI_CC}/bin/arm-bcm2708hardfp-linux-gnueabi-tanlib)
# where is the target environment
SET(CMAKE_FIND_ROOT_PATH $ENV{RPI_CC}/arm-bcm2708hardfp-linux-gnueabi)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
(2) 当我在 Windows7 的命令窗口中运行 cmake 时,它默认为 Visual Studio 10 进行编译(我没有选择任何选项,它在默认情况下发生)如下-- Building for: Visual Studio 10
。我如何更改它以针对 Debian Linux 进行构建?
谢谢
(根据文档http://www.cmake.org/Wiki/CMake_Cross_Compiling http://www.cmake.org/Wiki/CMake_Cross_Compiling)
你需要一个工具链文件 http://www.cmake.org/Wiki/CMake_Cross_Compiling#The_toolchain_file,并且您必须通过定义 CMake 变量来指示 CMake 使用它CMAKE_TOOLCHAIN_FILE
.
更重要的是,如果您想使用该工具链进行构建,您的 CMake 生成器必须是“Unix Makefile”。这意味着构建工具将是make
而不是 Visual Studio。因为我不确定CMake是否可以制作使用gcc交叉编译器的Visual Studio项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)