I am not autotool/autoconf expert
As title, I am working on cross-compile for ARM platform.then try
CC=arm-openwrt-linux-gcc LD=arm-openwrt-linux-ld AR=arm-openwrt-linux-ar ./configure --host=arm --build=i386 --target=arm
then I get below messages that it seems not support share library
checking whether the arm-openwrt-linux-gcc linker (arm-openwrt-linux-ld) supports shared libraries... yes ... checking if libtool supports shared libraries... no checking whether to build shared libraries... no checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... arm-openwrt-linux-ld checking if the linker (arm-openwrt-linux-ld) is GNU ld... yes checking whether the g++ linker (arm-openwrt-linux-ld) supports shared libraries... no checking for g++ option to produce PIC... -fPIC -DPIC ... checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (arm-openwrt-linux-ld) supports shared libraries... no
I know the compile was support share library. and I want to get fix configure
what is the best way to trace/debug such problem at configure?
what is the best way to trace/debug such problem at configure?
If an Autoconf-based configure
script's output does not give you enough information to identify the problem, then you can get more information from the log file that configure
writes, configure.log
. It provides a great deal of detail about what configure
did, including the specific command it runs for each test, the input (if relevant), and its output / stderr / return code.
It is sometimes helpful to look at the configure
script itself, too, though you should be prepared to use your editor's search feature to find relevant code, as the script is typically thousands of lines long.
But before you start digging into that, do try specifying the host
system via an appropriate full triplet. If you do so then you probably will not need to specify particular tools via environment variables, and you may find that it resolves the problem altogether. You may also specify a build
triplet, but that's not typically necessary. A target
triplet is altogether unnecessary unless you're building a compiler, for target
describes (only) the type of system for which such a compiler produces output.
For example, it looks like this might be appropriate for your case:
./configure --host=arm-openwrt-linux