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

--
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to