Re: eclipse-poky: Can't build from Eclipse, but command line build works
Bryan Evenson
Todor,
> It appears that your toolchain is configured properly, however the GNU linker (ld) cannot find the libraries it needs to link the binary.
> I suspect that the culprit is "--sysroot=$SDKTARGETSYSROOT"
> There should be an environment setup file
>
> /<home_path>/poky/poky-build/tmp/environment-setup-XX
>
> If you open it you will see SDKTARGETSYSROOT environment variable. It most likely points to a different sysroot path.
> Please change it to point to the directory where you extracted your sysroot (/<home_path>/extracted_sysroot_1.6.2),
> create a new project and see if that builds OK.
I've been having a few other issues with Eclipse (Install New Software menu item disappearing, other plugins disappearing after restarting, etc.), so I uninstalled eclipse, deleted my ~/.eclipse and workspace directories and re-installed Eclipse. I need
to run Eclipse Kepler (another plugin I'm using isn't ready for Eclipse Luna), so I followed these instructions for installing Eclipse by hand: http://www.92wiki.com/en/blog/detail/install-eclipse-kepler-on-fedora-17-18-19-centos-red-hat-rhel-5-6.
I also edited my environment setup script as suggested. I then reinstalled all necessary plugins as described in the ADT manual. I pointed the toolchain to my build directory and the sysroot location to my extracted sysroot. I then followed the steps in
the ADT manual to create a new Hello World Yocto ADT project. I verified the SDKTARGETSYSROOT environment variable in the new project points to my extracted sysroot. When I attempted to build, I get the following output:
Invoking autogen.sh in build directory: /<home_path>/workspace/adt_test/
Command-line environment variables:
CFLAGS=" -g -O0 --sysroot=/<home_path>/extracted_sysroot_1.6.2" CXXFLAGS=" -g -O0 --sysroot=/<home_path>/extracted_sysroot_1.6.2" LDFLAGS=" --sysroot=/<home_path>/extracted_sysroot_1.6.2" CPPFLAGS=" --sysroot=/<home_path>/extracted_sysroot_1.6.2"
sh -c "/<home_path>/workspace/adt_test/autogen.sh --with-libtool-sysroot=/<home_path>/extracted_sysroot_1.6.2 --target=arm-poky-linux-gnueabi --host=arm-poky-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=/<home_path>/extracted_sysroot_1.6.2"
aclocal: warning: couldn't open directory '/<home_path>/extracted_sysroot_1.6.2/usr/share/aclocal': No such file or directory
configure.ac:16: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated. For more info, see:
configure.ac:16:
http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
configure.ac:20: installing './compile'
configure.ac:20: installing './config.guess'
configure.ac:20: installing './config.sub'
configure.ac:16: installing './install-sh'
configure.ac:16: installing './missing'
src/Makefile.am: installing './depcomp'
configure: loading site script /<home_path>/poky/meta/site/endian-little
configure: loading site script /<home_path>/poky/meta/site/arm-common
configure: loading site script /<home_path>/poky/meta/site/common-linux
configure: loading site script /<home_path>/poky/meta/site/common-glibc
configure: loading site script /<home_path>/poky/meta/site/arm-linux
configure: loading site script /<home_path>/poky/meta/site/common
configure: loading site script /<home_path>/poky/meta-openembedded/meta-oe/site/endian-little
configure: loading site script /<home_path>/poky/poky-build/tmp/sysroots/at91sam9x5ek/usr/share/arm-poky-linux-gnueabi_config_site.d/ncurses_config
configure: loading site script /<home_path>/poky/poky-build/tmp/sysroots/at91sam9x5ek/usr/share/arm-poky-linux-gnueabi_config_site.d/eglibc_config
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-poky-linux-gnueabi-strip... arm-poky-linux-gnueabi-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... arm-poky-linux-gnueabi
checking how to print strings... printf
checking for style of include used by make... GNU
checking for arm-poky-linux-gnueabi-gcc... arm-poky-linux-gnueabi-gcc -march=armv5te -marm -mthumb-interwork -mtune=arm926ej-s --sysroot=$SDKTARGETSYSROOT
checking whether the C compiler works... no
configure: error: in `/<home_path>/workspace/adt_test':
configure: error: in `/<home_path>/workspace/adt_test':
configure: error: C compiler cannot create executables
configure: error: C compiler cannot create executables
See `config.log' for more details
Configuration failed with error
The bold lines are ones that I see as a potential problem. First, the system couldn't find aclocal in my extracted sysroot. I took a look in the directory listed, and aclocal is not in there. I think the configure script also found the build system's
install and mkdir (/usr/bin/install and /usr/bin/mkdir). I don't know if there is supposed to be one of these in the extracted sysroot or not, but I thought it was worth noting.
On a possibly related topic, I noticed that the Eclipse Indexer is using the build system's header files. For example, if I open the main source file from the Hellow World application, place my cursor on the line "#include <stdlib.h>" and hit F3, /usr/include/stdlib.h
opens up instead of stdlib.h from my toolchain. Under the Eclipse project, for the listed Includes directories it has the following:
/usr/include
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include
/usr/local/include
Any thoughts on how to fix these issues?
Thanks,
Bryan
|
|