如何在configure时,将编译参数传入,改变默认的编译器gcc成arm-linux-gcc

【问题】

想要用交叉编译工具arm-linux-gcc去编译lrzsz,

但是在./configure的时候,无法用–host=arm-linux或–build=arm-linux或–target=arm-linux等传入此编译器参数。

【解决过程】

按照INSTALL中的介绍,也是常用的方法,在configure的时候,加上–host=arm-linux,结果没有实现我们要的效果,没有将编译器从默认的

gcc改成arm-linux-gcc,编译器还是用的默认的gcc:

[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 ./configure –host=arm-linux 

loading cache ./config.cache

………………..

checking for gcc… (cached) gcc

checking whether the C compiler (gcc -O2 ) works… yes

checking whether the C compiler (gcc -O2 ) is a cross-compiler… no

………………..

后来经过多次尝试,最后受默认的

CFLAGS=-O2 ./configure

进行配置所启发,想到,是否可以将CC参数传入到configure中,

结果证实,如果没有自己的cache-file,即时加了对的CC参数,也还是无法传入:

[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –host=arm-linux 

loading cache ./config.cache

………………..

checking for gcc… (cached) gcc

checking whether the C compiler (gcc -O2 ) works… yes

checking whether the C compiler (gcc -O2 ) is a cross-compiler… no

checking whether we are using GNU C… (cached) yes

………………..

而且,如果CC参数放在configure后面:

./configure CC=arm-linux-gcc

则不能识别:

[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 ./configure CC=arm-linux-gcc

configure: warning: CC=arm-linux-gcc: invalid host type

………………..

参数传递必须像

CFLAGS=-O2 ./configure

一样,将参数设置放在configure的前面:

CC=arm-linux-gcc./configure

才能识别的。

必须要自己制定自己的cache-file 然后用./configure进行新配置,加上CC参数,才会即时生效,编译器才可以变成我们要的arm-linux-gcc:

[crifan@localhost lrzsz-0.12.20]$ CC=arm-linux-gcc ./configure –cache-file=cache_file_0 –prefix=/usr/crifan/lrzsz

………………..

checking for gcc… arm-linux-gcc

checking whether the C compiler (arm-linux-gcc ) works… yes

checking whether the C compiler (arm-linux-gcc ) is a cross-compiler… yes

checking whether we are using GNU C… yes

………………..

否则,就无法将我们的CC参数传入了:

[crifan@localhost lrzsz-0.12.20]$ CC=arm-linux-gcc ./configure –prefix=/usr/crifan/lrzsz

………………..

checking for gcc… (cached) gcc

checking whether the C compiler (gcc ) works… yes

checking whether the C compiler (gcc ) is a cross-compiler… no

checking whether we are using GNU C… (cached) yes

………………..

[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –cache-file=cache_file_0 

loading cache cache_file_0

………………..

checking for gcc… arm-linux-gcc

checking whether the C compiler (arm-linux-gcc -O2 ) works… yes

checking whether the C compiler (arm-linux-gcc -O2 ) is a cross-compiler… yes

checking whether we are using GNU C… yes

最好此处在加上–prefix=/usr/crifan/lrzsz,表示具体安装到哪里

[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –cache-file=cache_file_0 –prefix=/usr/crifan/lrzsz

loading cache cache_file_0

………………..

checking for gcc… arm-linux-gcc

checking whether the C compiler (arm-linux-gcc -O2 ) works… yes

checking whether the C compiler (arm-linux-gcc -O2 ) is a cross-compiler… yes

checking whether we are using GNU C… yes

………………..

其中,/usr/crifan/lrzsz是已经建立好的,已经存在的文件夹,上面这样表示编译后,

将生成的可执行文件安装拷贝到那个目录.

【办法总结】

在./configure的时候,将CC参数放入configure之前,并且要制定cache file,才能完全即时识别编译器:
CC=arm-linux-gcc ./configure –cache-file=cache_file_0

【Linux开发】如何在./configure的时候将编译参数传入,改变默认的编译器gcc成arm-linux-gcc的更多相关文章

  1. Linux开发板(树莓派)和服务器进行双向通信(socket)

    前言 ​ 物联网是目前嵌入开发必备的属性之一,我们常常需要把自己开发板和云端进行交互,本篇博文就记录一下. ​ 使用Socket来实现Linux开发板和服务器进行双向通信,Python中是默认集成了s ...

  2. 智能开关:orange pi one(arm linux)控制继电器

    大家都知道,继电器是用小电流去控制大电流运作的一种“自动开关”,在我们生活.工作中随处可见.现在的“智能家居”概念,有很多功能模块其实就是“智能开关”,远程开关.定时开关.条件触发开关等等. 下面介绍 ...

  3. 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容

    [Qt开发][VS开发][Linux开发]OpenCV.Qt-MinGw.Qt-msvc.VS2010.VS2015.Ubuntu Linux.ARM Linux中几个特别容易混淆的内容 标签:[Qt ...

  4. Linux编译安装中configure、make和make install各自的作用

      这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或G ...

  5. [转载]Linux 命令详解:./configure、make、make install 命令

    [转载]Linux 命令详解:./configure.make.make install 命令 来源:https://www.cnblogs.com/tinywan/p/7230039.html 这些 ...

  6. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...

  7. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题

    实际上这里说的是移植的第一步,下载到源码后,我用的是opencv2.4.9,解压缩,然后可以利用cmake-gui来进行configure配置,这里面需要设置交叉编译的工具链,具体的可以参考[Linu ...

  8. 小白自制Linux开发板 十. NES游戏玩起来

    本篇基于我们制作的Debian文件系统而展开,而且我们这会玩一些高级的操作方式--用我们的小电脑进行程序编译.   所以本篇操作全部都在我们个的开发板上完成.   1. 开发环境搭建 首先安装gcc, ...

  9. 20145213《信息安全系统设计基础》实验一 Linux开发环境的配置

    北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号:20145213 20145222 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...

随机推荐

  1. TensorFlow for python学习使用

    一.TensorFlow简介 TensorFlow 是由 Google Brain 团队为深度神经网络(DNN)开发的功能强大的开源软件库.当前流行的深度学习框架,从中能够清楚地看到 TensorFl ...

  2. 如何配置SQL Server数据库远程连接

    本地数据库(SQL Server 2012或以上) 连接外网服务器的数据库,外网的服务器端需要做如下配置: 1.首先是要打开 数据的配置管理工具 2.配置相关的客户端协议,开启TCP/IP 3.数据库 ...

  3. ipv4固定ip地址

    1.vi /etc/sysconfig/network-scripts/ifcfg-enp7s0f0    ##在后面添加ip和域名解析IPADDR="192.168.130.34" ...

  4. PHP实现最简单爬虫原型

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  5. create-react-app踩坑记

    前言 哇,不的不说这个react 这个脚手架create-react-app脚确实有很多问题,哈哈,下面来看看吧有哪些坑: 引用sass或者less 记得16年还是几年是不支持sass,和less的, ...

  6. 《Head First 软件开发》阅读五

    结束开发循环:娟娟细流归大海 几乎完成了任务,而开发循环结束所要面对的问题是用户测试的安排.新的一轮重构和重新设计. 开发循环已经完成,但是还是有很多事情可以去做.系统测试必不可少,但是是由谁来做系统 ...

  7. TypeScript作为前端开发你必须学习的技能二)

    TypeScript 变量声明 变量是一种使用方便的占位符,用于引用计算机内存地址.我们可以把变量看做存储数据的容器. TypeScript 变量的命名规则:和javascript一样.除了下划线 _ ...

  8. nmon监控使用

    1.上传nmon_linux_x86_64文件到服务器 2.修改文件权限chmod 775 nmon_linux_x86_64 3.压测时需要执行以下命令监控服务器./nmon_linux_x86_6 ...

  9. Cassandra介绍

    Cassandra介绍 Apache Cassandra 是一个开源的.分布式.无中心.弹性可扩展.高可用.容错.一致性可调.面向列的数据库.它基于Amazon Dynamo的分布式设计 Cassan ...

  10. 如何用 Redis 统计独立用户访问量

    众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过1 ...