使用configure file生成makefile

时间:2017-09-02 08:35:41

标签: c++ c linux gcc g++

我使用./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的工具链/ 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 ..没有   检查条带...条带   检查线程安全的mkdir -p ... / bin / mkdir -p   检查gawk ...没有   检查mawk ... mawk   检查make是否设置$(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+++++++没有   检查/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+++++++没有   检查/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 ..没有   检查/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/Desktop/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 ..没有   检查/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 ++编译器是否正常工作...没有   configure:error:in' / home / tl / Desktop / mvux_camera / demo / sampli_save_demo':   configure:错误: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 =臂-FSL-Linux的gnueabi-GCC   COLLECT_LTO_WRAPPER = /家庭/ TL /桌面/选择/ Embedsky / GCC-4.6.2-的glibc-2.13-Linaro的-multilib的2011.12 / TQ-Linaro的工具链/ bin中/../的libexec / GCC / ARM-FSL-Linux的gnueabi / 4.6.2 / LTO-包装   目标: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-mpfr = / work / build / .build / arm-fsl-linux-gnueabi / build / static --with-mpc = / work / build / .build / arm-fsl-linux-gnueabi / build / static --with-ppl = / work / build / .build / arm-fsl-linux-gnueabi / build / static --with-cloog = / work / build / .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(预发布)(飞思卡尔MAD - Linaro 2011.07 - 建于2011/08/10 09:20)

1 个答案:

答案 0 :(得分:1)

查看./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系统。因此,当您想./configure时 使用该交叉编译器的项目HOST = arm-fsl-linux-gnueabi