Dear c.o.l.embedded I downloaded source of lrzsz and want to cross compile it. How do i make gnu build system understand this? ./configure CROSS_COMPILE=arm-unknown-linux-gnu- doesn't work. Do i need to find a way to handle everything by hand? Source tree doesn't seem complicated.
cross compile with ./configure
Jun 02, 2009
7 Replies
did you try ./configure --help ?
f there was a CROSS_COMPILE option, it would be preceded with --, for example: --host=HOST cross-compile to build programs to run on HOST [BUILD]
Typically you can use the following environmental variables CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor
--host=HOST cross-compile to build programs to run on HOST [BUILD]
did you install a toolchain for cross compiling (the appropriate gcc etc) ?
-Michael
$./configure CC=arm-unknown-linux-gnu-gcc configure: warning: CC=arm-unknown-linux-gnu-gcc: invalid host type
$ CROSS_COMPILE=arm-unknown-linux-gnu- $ ./configure --host=i686-linux --target=arm-linux (script runs but make terminates with error)
$ CC=arm-unknown-linux-gnu- $ ./configure
... checking for gcc... (cached) gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no ...
So, each of these tries resulted in non working settings. My cross toolchain is installed and in my PATH.
You ought to post the error
It doesn't seem to work.
Configure is trying to tell you that your c compiler isn't capable of cross compilation.
Look into the configure script to see how it is performing it's test.
OK, I got it working. Instead of "apt-get source", I downloaded the original source from freshmeat. Then issued:
$ CC=arm-unknown-linux-gnu-gcc ./configure --host=arm-unknown-linux-gnu
It configured and cross-compiled successfully.
Try $ CC=arm-unknown-linux-gnu-gcc ./configure --host=arm-unknown-linux-gnu
Kristof
That setting of a variable won't be seen by teh configure script. Either export it as an environmental variable to be exported to spawned processes, or include it in the ./configure line thus:
$ CROSS_COMPILE=arm-unknown-linux-gnu- ./configure --host=i686-linux
--target=arm-linux
Ditto. Look up 'export' in your bash manpage.
Phil
Marijuana is indeed a dangerous drug.
It causes governments to wage war against their own people.
-- Dave Seaman (sci.math, 19 Mar 2009)
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required