# Regulart Meeting (2020.3.15) * Native compile sw (my PC), remote execute (SDCard on XVC_Pynq_Z2) ![image alt](https://i.imgur.com/lC0r757.png) ## 2. The Compiler arm-gcc * Compiler for armV7 in native host ![](https://i.imgur.com/9Uyi24Z.png) * [The Linaro-GCC](https://en.wikipedia.org/wiki/Linaro) * Supported verison of compiler (in arm-v7) * C11 * Newest version is c17/18 * c17/18 has not new feture * c17/18 only fix bug for c11 * C++17 * Newest version is C++20 * Some new feture * About arm-gcc * arm-linux-gnueabihf-gcc-linaro (ok) * arm-none-gnueabihf-gcc-linaro (x) * arm-linux-gnueabi-gcc-linaro (x) * arm-none-gnueabi-gcc-linaro (x) * why????????????? * gnueabi**hf**, what's hf? * ![](https://i.imgur.com/rFN3fiE.png) * **arm-none-...** vs **arm-linux-...** * Try following 2 programs * compile with **arm-none-…** ```C /* prog.1 */ #include <stdio.h> int main () { printf("Hello Kitty"); } ``` ```C /* prog.2 */ #include <unistd.h> int main () { /* open() is a system call is supported by unix (linux) */ open(...); } ``` * `prog.1` passed compile. * Compiler raise error when you compile `prog.2`: ``` can't find header unistd.h ``` * Reason: * `unistd.h` is header for **UNIX(Linux) Standard** * Depending on *how OS to implement* * `stdio.h` is header for **C Standard** * Compile with **arm-linux-...** can pass both prog.1 and prog.2 ###### tags: `Regular Meeting` `DeWei`