Using the NXP arm-none-eabi-gcc on linux

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Using the NXP arm-none-eabi-gcc on linux

跳至解决方案
3,473 次查看
gberthiaume
Contributor III

Hi,

I'm looking for guidance about how to use the S32K toolchain on a Linux environment.

Context

I'm trying to use the S32K Linux (Ubuntu 16) arm-none-eabi build tools to compile my project.
I'm using CMake and Make to do so.

Currently, the build system fails at the "check for working C compiler" step. The exact error message is:

cc1: fatal error: lib_c99.prefix: No such file or directory

Of course, this file exists in my build_tools directory:

 

 

$  find /usr/local/build_tools/arm32_ewl2 | grep lib_c99
/usr/local/build_tools/arm32_ewl2/EWL_C/include/lib_c99.prefix

 

 

While the CMake toolchain file could be the cause of this problem, my compiler flags seem identical to the one used when compiling the project with the S32 DS IDE:

usr/local/build_tools/gcc-6.3-arm32-eabi/bin/arm-none-eabi-gcc -c -fmessage-length=0 -ffunction-sections -fdata-sections -mcpu=cortex-m4 -mthumb -specs=ewl_c9x_noio.specs --sysroot="/usr/local/build_tools/arm32_ewl2" -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fdata-sections -ffunction-sections -o CMakeFiles/cmTC_ee422.dir/testCCompiler.c.obj -c /root/nBMSMv2_Tools/myproject/build/CMakeFiles/CMakeTmp/testCCompiler.c

I think the problem might reside in my environment setup.
Here's my build_tools tree:

 

 

/usr/local/build_tools/
|-- arm32_ewl2  # <-------- SYSROOT
|   |-- Build_Tag.txt
|   |-- Doxyfile
|   |-- EWL_C
|   |-- EWL_C++
|   |-- EWL_ReleaseNotes
|   |-- EWL_Runtime
|   |-- lib
|   `-- makefile
`-- gcc-6.3-arm32-eabi
    |-- arm-none-eabi
    |-- bin
    |-- include
    |-- lib
    |-- libexec
    |-- linux_support
    |-- patches_applied
    `-- share

 


Question

Why can't arm-none-eabi-gcc find the lib_c99.prefix file? 
If all the compilation flags are identical to the one used by the IDE, what did I miss? Is this a question of environment variables?

Thanks.

ATCH. The full CMake log

标签 (1)
0 项奖励
回复
1 解答
3,436 次查看
gberthiaume
Contributor III

Finally got it.
In the toolchain file, you need to include those directories:

include_directories(
    "EWL_C/include"
    "EWL_C/include/arm"
    "EWL_Runtime/include"
    "EWL_Runtime/include/arm"
)

在原帖中查看解决方案

1 回复
3,437 次查看
gberthiaume
Contributor III

Finally got it.
In the toolchain file, you need to include those directories:

include_directories(
    "EWL_C/include"
    "EWL_C/include/arm"
    "EWL_Runtime/include"
    "EWL_Runtime/include/arm"
)