使用配置文件来生成makefile
我使用./configure命令来生成一个makefile。 我的编译器是arm-fsl-linux-gnueabi toochain。 当我运行./configure时,出现以下问题:
tl -tl-virtual-machine:〜/ Desktop / mvux_camera / demo / sampli_save_demo $ ./configure --host = / home / tl / Desktop / opt / Embedsky / gcc-4.6.2-glibc-2.13-linaro-multilib- 2011.12 / tq-linaro-toolchain / bin / arm-fsl-linux-gnueabi -g ++ configure:警告:如果你想设置--build类型,不要使用--host。 如果检测到交叉编译器,则将使用交叉编译模式检查BSD兼容安装... / usr / bin / install -c检查构建环境是否健全...是检查/ home / tl / Desktop / opt / Embedsky / gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm -fsl-linux-gnueabi -g ++ - strip ...不检查strip ... strip检查线程安全的mkdir -p ... / bin / mkdir -p检查gawk ...没有检查mawk ... mawk检查是否make sets $(MAKE)...是检查/ home / tl /Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g ++ - g ++ ...不检查/ home /tl/Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g ++ - c ++ ...不检查/home/tl/Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g ++ - gpp ... no检查/home/tl/Desktop/opt/Embedsky/gcc-4.6.2- glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm-fsl-linux-gnueabi -g ++ - aCC ...不检查/home/tl/Desktop/opt/Embedsky/gcc-4.6。 2-glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm-fsl-linux-gnueabi -g ++ -CC ...不检查/ home / tl / Desktop / opt / Embedsky / gcc- 4.6.2-glibc-2.13 -linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm -fsl-linux-gnueabi -g ++ -cxx ...不检查/ home / tl / Desktop / opt / Embedsky / gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm -fsl-linux-gnueabi -g ++ -cc ++ ...不检查/ home / tl / Desktop / opt / Embedsky / gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm -fsl-linux-gnueabi -g ++ - cl.exe ...不检查/ home / tl /桌面/ opt / Embedsky / gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm-fsl-linux-gnueabi -g ++ - FCC ...不检查/ home / tl / Desktop / opt / Embedsky / gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm-fsl-linux-gnueabi -g ++ - KCC ...没有检查/ home / tl / Desktop / opt / Embedsky / gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12 / tq-linaro-toolchain / bin / arm -fsl-linux-gnueabi -g ++ - RCC ...不检查for /home/tl/Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g ++ - xlC_r ...没有检查/home/tl/Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++-xlC。 ..没有检查g ++ ...没有检查c ++ ...没有检查gpp ...没有检查aCC ...没有检查CC ...没有检查cxx ...没有检查cc ++ .. 。没有检查cl.exe ...没有检查FCC ...没有检查KCC ...没有检查RCC ...没有检查xlC_r ...没有检查xlC ...没有检查C ++编译器工作...没有配置:错误:在'/ home / tl / Desktop / mvux_camera / demo / sampli_save_demo'中:configure:error:C ++编译器无法创建可执行文件请参阅'config.log'以获取更多详细信息
当我输入arm-fsl-linux-gnueabi-gcc -v
,我的工具链是源代码的,命令行显示它的工作原理。
tl @ tl-virtual-machine:〜/ Desktop / mvux_camera / demo / sampli_save_demo $ arm -fsl-linux-gnueabi-gcc -v使用内置规格。 COLLECT_GCC = arm-fsl-linux-gnueabi-gcc COLLECT_LTO_WRAPPER = / home / tl / Desktop / opt / Embedsky / gcc-4.6.2-glibc-2.13 -linaro-multilib-2011.12 / tq-linaro-toolchain / bin / .. /libexec/gcc/arm-fsl-linux-gnueabi/4.6.2/lto-wrapper目标:arm-fsl-linux-gnueabi配置:/work/build/.build/src/gcc-linaro-4.6-2011.06- 0 / configure --build = i686-build_pc-linux-gnu --host = i686-build_pc-linux-gnu --target = arm -fsl-linux-gnueabi -prefix = / work / fsl-linaro-toolchain-2.13 --with-sysroot = / work / fsl-linaro-toolchain-2.13 / arm-fsl-linux-gnueabi / multi-libs --enable-languages = c,c ++ --with-pkgversion ='飞思卡尔MAD - Linaro 2011.07 - 建于2011/08/10 09:20'--enable -__ cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --with-gmp = / work / build / .build / arm-fsl -linux-gnueabi / build / static --with-mpcr = / work / build / .build / arm-fsl / build / static --with-mpfr = / work / build / .build / arm-fsl -linux-gnueabi / build / static --with-cloog = / work / buil -with-ppl = / work / build / .build / arm -fsl-linux-gnueabi / build / static d / .build / arm-fsl-linux-gnueabi / build / static --with-libelf = / work / build / .build / arm -fsl-linux-gnueabi / build / static --with-host-libstdcxx =' -static-libgcc -Wl,-Bstatic,-lstdc ++, - Bdynamic -lm -L / work / build / .build / arm -fsl-linux-gnueabi / build / static / lib -lpwl'--enable-threads = posix --enable-target-optspace --enable-plugin --enable-multilib --with-local-prefix = / work / fsl-linaro-toolchain-2.13 / arm-fsl-linux-gnueabi / multi-libs --disable -nls --enable-c99 --enable-long-long --with-system-zlib线程模型:posix gcc版本4.6.2 20110630(预发布)(Freescale MAD - Linaro 2011.07 - 建于2011/08/10 09:20)
看看./configure --help
的输出,特别是:
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
HOST
应该是你希望你的交叉编译程序运行的系统的身份。 但是您已将它设置为C ++编译器的绝对文件名:
./configure --host=/home/tl/Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++
这会导致您的./configure
脚本试图找不到具有如下无意义名称的交叉编译器:
/home/tl/Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++-g++
/home/tl/Desktop/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++-c++
看看arm-fsl-linux-gnueabi-gcc -v
,具体如下:
Target: arm-fsl-linux-gnueabi
这告诉你,你的交叉编译器是为了交叉编译arm-fsl-linux-gnueabi
系统的程序而arm-fsl-linux-gnueabi
。 因此,当你想要./configure
一个项目来使用交叉编译器时, HOST
= arm-fsl-linux-gnueabi