我有一个C项目,它支持许多平台 . 它的生成器有Borland Makefiles,NMake Makefiles,MSVC 6,7,8,9,11,Eclipse CDT4 - Unix Makefiles等 . 我在Windows 7上用cmake生成了MSVC 9解决方案 . 没关系 .

现在,我想在上述C项目的TI Sitara SDK上生成ARM Cortex A8项目 . TI Sitara SDK安装在Ubuntu 14.04 OS主机上 . 有一个交叉编译工具链:Ubuntu PC上的Linaro .

从最初的C项目文档看,下面的选择看起来适合Sitara SDK,因为它使用Eclipse(但它的帮助窗口上有8.1.1,高于CDT4)

Eclipse CDT4 ‐ Unix Makefiles
                              = Generates Eclipse CDT 4.0 project files.

我已经设置了编译器路径:

export CMAKE_C_COMPILER=/home/u64rj/ti-processor-sdk-linux-am335x-evm-01.00.00.03/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-gcc

export CMAKE_ECLIPSE_VERSION=4.2

当我运行cmake时,仍然存在这样的错误:

u64rj@u64rj-MS-7696:~/u64rj-Fixed/sdk-2-src$ cmake -G "Eclipse CDT4 - Unix Makefiles" -DBUILD=LINUX-ARMv7a -DCFG=Debug -DMATH=I32
-- CMAKE SCRIPTS VERSION 1.1.1.0
CMake Error at /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:90 (file):
  file Internal CMake error when trying to open file:
  /home/u64rj-Fixed/sdk-2-src/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
  for writing.
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:100 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:39 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
  common-build/cmake/sdk-project-include.cmake:1189 (project)
  CMakeLists.txt:4 (SDK_PROJECT)


CMake Error at /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:90 (file):
  file Internal CMake error when trying to open file:
  /home/u64rj-Fixed/sdk-2-src/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
  for writing.
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:100 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:39 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
  common-build/cmake/sdk-project-include.cmake:1189 (project)
  CMakeLists.txt:4 (SDK_PROJECT)


CMake Error at /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:90 (file):
  file Internal CMake error when trying to open file:
  /home/u64rj-Fixed/sdk-2-src/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
  for writing.
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:100 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:39 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
  common-build/cmake/sdk-project-include.cmake:1189 (project)
  CMakeLists.txt:4 (SDK_PROJECT)


-- The C compiler identification is unknown
CMake Error at /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:90 (file):
  file Internal CMake error when trying to open file:
  /home/u64rj-Fixed/sdk-2-src/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
  for writing.
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:100 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:39 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
  common-build/cmake/sdk-project-include.cmake:1189 (project)
  CMakeLists.txt:4 (SDK_PROJECT)


CMake Error at /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:90 (file):
  file Internal CMake error when trying to open file:
  /home/u64rj-Fixed/sdk-2-src/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
  for writing.
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:100 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:39 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
  common-build/cmake/sdk-project-include.cmake:1189 (project)
  CMakeLists.txt:4 (SDK_PROJECT)


-- The CXX compiler identification is unknown
-- Could not determine Eclipse version, assuming at least 3.6 (Helios). Adjust CMAKE_ECLIPSE_VERSION if this is wrong.
-- Check for working C compiler: /home/u64rj-Fixed/sdk-2-src/arm-linux-gnueabihf-gcc
CMake Error: your C compiler: "/home/u64rj-Fixed/sdk-2-src/arm-linux-gnueabihf-gcc" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Check for working C compiler: /home/u64rj-Fixed/sdk-2-src/arm-linux-gnueabihf-gcc -- broken
CMake Error at /usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler
  "/home/u64rj-Fixed/sdk-2-src/arm-linux-gnueabihf-gcc"
  is not able to compile a simple test program.

  It fails with the following output:





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  common-build/cmake/sdk-project-include.cmake:1189 (project)
  CMakeLists.txt:4 (SDK_PROJECT)


CMake Error: your C compiler: "/home/u64rj-Fixed/sdk-2-src/arm-linux-gnueabihf-gcc" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "/home/u64rj-Fixed/sdk-2-src/arm-linux-gnueabihf-g++" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring incomplete, errors occurred!
See also "/home/u64rj-Fixed/sdk-2-src/CMakeFiles/CMakeOutput.log".
See also "/home/u64rj-Fixed/sdk-2-src/CMakeFiles/CMakeError.log".
u64rj@u64rj-MS-7696:~/u64rj-Fixed/sdk-2-src$

ARMv7a是TI Sitara AM3358芯片构建的架构 .

我不知道它为什么在C项目路径上搜索交叉编译器:CMake错误:你的C编译器:“/ home / u64rj-Fixed / sdk-2-src / arm-linux-gnueabihf-gcc”找不到 . 请将CMAKE_C_COMPILER设置为有效的编译器路径或名称 . CMake错误:内部CMake错误,TryCompile配置cmake失败 - 检查工作C编译器:/ home / u64rj-Fixed / sdk-2-src / arm-linux-gnueabihf-gcc - broken

即使工具链的交叉编译器是由导出CMAKE_C_COMPILER = / home / u64rj / ti-processor-sdk-linux-am335x-evm-01.00.00.03 / linux-devkit / sysroots / i686-arago-linux / usr / bin中/臂-Linux的gnueabihf-GCC

谢谢,