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