[ros-users] Cross-compilation and library locations

Daniel Maier maierd at informatik.uni-freiburg.de
Wed Apr 14 13:52:43 UTC 2010


On Tue, Apr 13, 2010 at 12:04:22PM -0400, Benjamin Vanheuverzwijn wrote:
> Can you compile a simple program like just:
> 
> #include <stdio.h>
> int main(int argc, char *argv[])
> {
>    printf("hello world\n");
>    return 0;
> }
> 
> with your cross-compile tools?

No!
I tried this:
$GEODE_CC -I$GEODE_INCLUDE -L$GEODE_LIB -o my_test test.c
and got this error msg:
/home/aishome/maierd/nao/ctc-academics-1.6.0/cross/geode/bin/../lib/gcc/i586-linux/4.3.3/../../../../i586-linux/bin/ld: crt1.o: No such file: No such file or directory
collect2: ld returned 1 exit status

> 
> When building GCC, you can hardcode where are the libc headers and other
> stuff. You may check that every path are correct with "gcc
> -print-search-dirs" and "gcc -dumpspecs".
> 
> In case you have problem compiling a basic program, i suggest that you
> strace gcc... you will see where it looks for which files and then fix the
> path.
> 
> $ strace -F gcc -o test test.c
> 
> (-F used to follow the subprocess like ld, etc)

I straced the above call and it looks like gcc(or rather ld) is not checking for crt1.o at the provided library location ($GEODE_LIB).
Same happens in the configure script although I set  CPPFLAGS and
LDFLAGS correctly.
/home/aishome/maierd/nao/ctc-academics-1.6.0/cross/geode/bin/i586-linux-gcc -march=geode -I/home/aishome/maierd/nao/ctc-academics-1.6.0/staging/geode-linux/usr//include -L/home/aishome/maierd/nao/ctc-academics-1.6.0/staging/geode-linux/usr//lib conftest.c  >&5
/home/aishome/maierd/nao/ctc-academics-1.6.0/cross/geode/bin/../lib/gcc/i586-linux/4.3.3/../../../../i586-linux/bin/ld: crt1.o: No such file: No such file or directory

Any ideas?
Thanks!
Dan




More information about the ros-users mailing list