qj@king:~/test$ arm-unknown-linux-gnueabi-gcc -o hello hello.c -Wl,-dynamic-linker=/data/app/ld-linux.so.3 -v
Using built-in specs.
Target: arm-unknown-linux-gnueabi
Configured with: /home/qj/crosstool_ng/.build/src/gcc-4.3.2/configure --build=x86_64-build_unknown-linux-gnu --host=x86_64-build_unknown-linux-gnu --target=arm-unknown-linux-gnueabi --prefix=/home/qj/x-tools/arm-unknown-linux-gnueabi --with-sysroot=/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --enable-languages=c,c++,fortran,java --with-float=soft --with-pkgversion='crosstool-NG 1.17.0' --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --with-gmp=/home/qj/crosstool_ng/.build/arm-unknown-linux-gnueabi/buildtools --with-mpfr=/home/qj/crosstool_ng/.build/arm-unknown-linux-gnueabi/buildtools --enable-threads=posix --enable-target-optspace --disable-nls --disable-multilib --with-local-prefix=/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.3.2 (crosstool-NG 1.17.0)
COLLECT_GCC_OPTIONS='-o' 'hello' '-v' '-mfloat-abi=soft'
/home/qj/x-tools/arm-unknown-linux-gnueabi/libexec/gcc/arm-unknown-linux-gnueabi/4.3.2/cc1 -quiet -v hello.c -quiet -dumpbase hello.c -mfloat-abi=soft -auxbase hello -version -o /tmp/ccNZjE6a.s
ignoring nonexistent directory "/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/include"
#include "..." search starts here:
#include <...> search starts here:
/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/include
/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/include-fixed
/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/../../../../arm-unknown-linux-gnueabi/include
/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/usr/include
End of search list.
GNU C (crosstool-NG 1.17.0) version 4.3.2 (arm-unknown-linux-gnueabi)
compiled by GNU C version 4.6.1, GMP version 4.3.2, MPFR version 2.4.2-p2.
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=127776
Compiler executable checksum: f9533e5b1327a97ebc9d3c6220f86781
COLLECT_GCC_OPTIONS='-o' 'hello' '-v' '-mfloat-abi=soft'
/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/../../../../arm-unknown-linux-gnueabi/bin/as -mfloat-abi=soft -meabi=4 -o /tmp/ccdGFya4.o /tmp/ccNZjE6a.s
COMPILER_PATH=/home/qj/x-tools/arm-unknown-linux-gnueabi/libexec/gcc/arm-unknown-linux-gnueabi/4.3.2/:/home/qj/x-tools/arm-unknown-linux-gnueabi/libexec/gcc/arm-unknown-linux-gnueabi/4.3.2/:/home/qj/x-tools/arm-unknown-linux-gnueabi/libexec/gcc/arm-unknown-linux-gnueabi/:/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/:/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/:/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/../../../../arm-unknown-linux-gnueabi/bin/
LIBRARY_PATH=/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/:/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/../../../../arm-unknown-linux-gnueabi/lib/:/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/lib/:/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/usr/lib/
COLLECT_GCC_OPTIONS='-o' 'hello' '-v' '-mfloat-abi=soft'
/home/qj/x-tools/arm-unknown-linux-gnueabi/libexec/gcc/arm-unknown-linux-gnueabi/4.3.2/collect2 --sysroot=/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --eh-frame-hdr -dynamic-linker /lib/ld-linux.so.3 -X -m armelf_linux_eabi -o hello /home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/usr/lib/crt1.o /home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/usr/lib/crti.o /home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/crtbegin.o -L/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2 -L/home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/../../../../arm-unknown-linux-gnueabi/lib -L/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/lib -L/home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/usr/lib /tmp/ccdGFya4.o -dynamic-linker=/data/app/ld-linux.so.3 -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /home/qj/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/crtend.o /home/qj/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot/usr/lib/crtn.o
在LINUX程序设计当中,经常会遇到头文件包含的问题,那么这些头文件到底在哪个路径下?具体的头文件路径依赖于程序性质(应用程序还是和内核相关的程序)和编译器,下面分别叙述。
|
|
|
|
|
|
当初在编译时指定的(在~gcc/gcc/collect2.c:locatelib() ,写在specs内的
后来用-D -I -L指定的
gcc环境变量设定(编译的时候)
ld.so的环境变量(这是run time的时候)