________________________________________ From: Bas Mevissen [ab...@basmevissen.nl] Sent: 20 September 2018 10:50 To: Evan O'Loughlin Cc: yocto@yoctoproject.org Subject: Re: [yocto] Yocto SDK generated - unable to compile application
On 2018-09-20 11:40, Evan O'Loughlin wrote: > -----Original Message----- > From: Bas Mevissen [mailto:ab...@basmevissen.nl] > Sent: 20 September 2018 10:12 > To: Evan O'Loughlin <evan.olough...@vitalograph.ie> > Cc: yocto@yoctoproject.org > Subject: Re: [yocto] Yocto SDK generated - unable to compile > application > > On 2018-09-20 10:08, Evan O'Loughlin wrote: >> Hello, >> >> I’m having an issue when I try to use the SDK generated by my yocto >> instance. >> Currently I have yocto set-up to correctly build my image – this all >> works well. >> >> I've built the SDK in the following ways: >> * bitbake {image} –c populate_sdk >> * bitbake meta-toolchain-qt5 >> * bitbake {image-sdk} using a separate recipe with the options: >> - require {image}.bb >> - IMAGE_FEATURES += " dev-pkgs tools-sdk tools-debug >> eclipse-debug debug-tweaks" >> - IMAGE_INSTALL += "kernel-devsrc" >> - inherit populate_sdk populate_sdk_qt5 >> >> >> When I try to use the generated SDKs I get the error below: >> Simple helloworld app: >> #include <stdio.h> >> #include <stdlib.h> >> #include <stddef.h> >> #include <cstddef> >> >> int main (int argc, char** argv) >> { >> printf("Hello World\n"); >> return 0; >> } >> >> Compile error: >> ${CC} helloworld.c >> helloworld.c:4:19: fatal error: cstddef: No such file or directory >> #include <cstddef> >> ^ >> compilation terminated >> >> >> Have I missed a step in generating the SDK? >> >> > > No, your SDK looks fine. The solution is to just remove the line > > #include <cstddef> > > from your c sources or use the g++ compiler (called ${CXX) in > Makefile) to compile the source. > >> Regards, >> vitalEol > Hi Bas, > > I'm using the offending line in helloworld.c to highlight the issue I'm > seeing. > > My main program is a Qt application where I see the same issue when > trying to build in QtCreator. > > My issue relates to the fact that several include files are not > readily available after 'sourcing' the environment setup. > > Do I need to adjust/include other recipes when building the SDK? > I might be wrong, but this looks like you are using the gcc compiler instead of the g++ one. See the second part of my answer. To check your environment, check in your sdk that the file cstddef exists somewhere in /usr/include. Example from a Fedora Linux system: $ find /usr/include -name cstddef /usr/include/c++/8/cstddef If I compile your example with "gcc" on that system, I get the same error. With "g++", is is fine. It automatically find the cstddef header file in the /usr/include/c++/8 directory. Hope this helps, (and please do not top post as that makes a mail thread unreadable) -- Bas. > Regards, > Evan > Hi Bas, Apologies for top-posting previously. using ${CC}, ${CPP} or ${CXX} all show the same error relating to not finding the required include cstddef is available in the cross-compiler toolchain: $ find . -name cstddef ./sysroots/armv7ahf-neon-linux-gnueabi/usr/include/c++/6.2.1/cstddef ./sysroots/armv7ahf-neon-linux-gnueabi/usr/include/boost/compatibility/cpp_c_headers/cstddef and is also available on my system: $ find /usr/include -name cstddef /usr/include/c++/5/cstddef /usr/include/c++/4.7/cstddef /usr/include/c++/4.8/cstddef ${CC} --version && ${CPP} --version && ${CXX} --version arm-linux-gnueabihf-gcc (Linaro GCC 6.2-2016.11) 6.2.1 20161016 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. arm-linux-gnueabihf-gcc (Linaro GCC 6.2-2016.11) 6.2.1 20161016 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. arm-linux-gnueabihf-g++ (Linaro GCC 6.2-2016.11) 6.2.1 20161016 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Regards, Evan -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto