我有一个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
谢谢,