1. 程式人生 > >如何在configure時,將編譯引數傳入,改變預設的編譯器gcc成arm-linux-gcc 【轉】

如何在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

[[email protected] 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引數,也還是無法傳入:
[[email protected] 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
則不能識別:
[[email protected] 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:
[[email protected] 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引數傳入了:
[[email protected] 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
....................

[[email protected] 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,表示具體安裝到哪裡
[[email protected] 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

相關推薦

如何在configure編譯引數傳入改變預設編譯器gccarm-linux-gcc

【問題】 想要用交叉編譯工具arm-linux-gcc去編譯lrzsz,但是在./configure的時候,無法用--host=arm-linux或--build=arm-linux或--target=arm-linux等傳入此編譯器引數。 按照INSTALL中的介紹,也是常用的方法,在configure的

Android 原始碼編譯 指定userdata.img、system.img、cache.img容量大小

本文轉載自:https://blog.csdn.net/baodinglaolang/article/details/49791041 修改build/target/board/generic_x86(對應編譯平臺)/BoardConfig.mk檔案BOARD_SYSTEMIMAGE_PARTITION_S

yolov3 官網文件 設計到編譯訓練map等引數測試windows和linux均有說明

GitHub原文:https://github.com/AlexeyAB/darknet#how-to-compile-on-linux 參考部落格原址: https://blog.csdn.net/qq_34806812/article/details/813851

mybatis 引數傳入以及#$佔位符區別

 單個的string傳遞需要@Param否則會報沒有get方法,設定不入sql引數(There is no getter for property named 'bz' in 'class java.lang.String')      map,實體等都會有內建的getter      public Lis

使用sqlhelper類查詢假如不需要引數那到時SqlParameter這個傳參怎麼處理

我在學寫SqlHelper類。用SqlParameter【】陣列做為引數。 我按條件查詢時,可以弄個引數化 但是查詢時假如並不需要引數化,那到時SqlParameter這個傳參怎麼處理 比如 查詢語句是 “select*from Student”,並不需要寫@id這種命令引數了。  但我定義的函式 Exe

Hibernate執行原生sql資料庫的char(n)型別轉換了character型別的解決方案

在使用Hibernate的原生態SQL對Oracle進行查詢時,碰到查詢char型別的時候始終返回的是一個字元,開始認為應該是Hibernate在做對映的把資料型別給對映成char(1),在經過查詢網上的一些資料,得知產生這個問題的主要原因確實是Hibernate再查詢Or

合並排序兩個已經排序的數組合並一個數組

n) ring 一個數 合並排序 sizeof 並排 names 排序 name #include<iostream> #include<string.h> using namespace std; void MergeArray(int a[]

編寫高質量代碼改善C#程序的157個建議——建議141:不知道該不該用大括號就用

body pos 高質量 一行 ron strong gpo clas div 建議141:不知道該不該用大括號時,就用 如果if條件語句只有一行語句,要不要使用大括號? 答案是:建議使用。一個括號不會增加多少代碼,但是卻讓代碼看上去增加了一致性。括號本身只會讓代碼更具

請實現一個函數一個字符串中的空格替換“%20”。例如當字符串為We Are Happy.則經過替換之後的字符串為We%20Are%20Happy。

gpo 字符串 wchar tostring OS src clas string image replace兩種用法:replace(int start,int end, String str) repla

MAVEN插件-tomcat插件java編譯插件資源文件拷貝插件

encoding AS artifact ID 資源 mave fig true con <plugins> <!-- 資源文件拷貝插件 --> <plugin> <groupId>org.apache.

jQuery 的 ajax 方法返回結果 readyState=4 並且 status=200 還進 error 方法

err 前端 log 報錯 但是 tail 格式 success ajax 今天在使用jquery.ajax方法去調用後臺方法時,ajax中得參數data類型是"JSON",後臺DEBUG調試,運行正常,返回正常的結果集,但是前端一直都進到ajax的error方法,百思不得

IO流讀取資料檔案資料寫入資料庫並記錄資料匯入日誌

流程分析: 資料型別: ROUTE_ID,LXBM,ROAD_NAME,SRC_LON,SRC_LAT,DEST_LON,DEST_LAT 10000,G50,滬渝高速,115.8605349,30.08934467,115.5437817,30.08898601 10001,G

oracle(使用TRUACTE刪除數據提示資源正忙)

ESS 正常 HERE sign order by where terminal spi ora 查詢記錄的鎖定對象,select * from v$locked_object(身份必須是DBA權限),然後找到對應的sid和serial#殺掉了會話;

已有的exe始終帶引數執行不需要每次輸入命令列的方法(create sfx archive)

原始需求:由於讓其他人操作時,可能由於看錯或者是手動輸入錯誤,導致命令列引數並不是符合預期的值,結果不能得到想要的結果 工具:winrar 英文中文都可以(不能使用快壓,快壓沒有這個功能)--自行下載(我的資源裡也可以找到) 操作方法: 開啟rar, 選擇要進行自解壓格式的exe檔案,然

linuxcentosnginx自動原始碼編譯安裝指令碼以及通過service 啟動/停止/過載 nginx的服務指令碼

 第一:指令碼為nginx原始碼編譯安裝的指令碼,可以幫助使用者自動建立系統使用者“nginx”;可以使用者自己指定安裝路徑,配置檔案路徑,執行檔案路徑等; 第二:可以配置第二個指令碼使用,通過service服務來管理nginx。 [[email protect

面試95%會被問道的問題不看會後悔

一、基本情況1、請用最簡潔的語言描述您從前的工作經歷和工作成果。 考察要點:測試應聘者是否能夠用幾句話概要地介紹其主要的工作資訊和重點業績,而不是以流水帳的形式重複履歷表有已經註明的內容。在介紹工作成 果時,注意應聘者能否正確表述其在原單位所發揮的作用。儘管有關基本能力的提問大多可以通過簡歷或應聘表格反

MATLAB 怎樣100張圖片拼接在10*10的一大張圖片裡其中這一百張的第一張是另一個資料夾下的後99張也分別是別的資料夾下的

List item https:// 如何用matlab生成這樣一幅圖片呢? 在網上找了很多資料,最終也麼有找到合適的程式碼。然後自己編了個小程式。如下: close all 

關於feature map, 神經元個數可訓練引數個數 卷積核大小 的一些總結

輸入input: 32 x 32 的影象使用:    6個 5x5  stride為 1的卷積核神經元 個數: (32-5+1) * (32 -5 +1) = 28 * 28 個。也就是每一個feature map的大小就是28 * 28 。  其中,32-5是卷積核可以滑過並得到一次計算結果的次數(因為步幅

輸入一個整數其反向輸出如輸入12345,要求輸出54321

#include "iostream.h"int OutNum(int temp){    int now=0,output=0;    while(temp>9)    {        now=temp%10;        temp=(temp-now)/10; 

pandas對列資料進行處理Nan變為0str變為0

test.csv檔案內容: 1,2, 1,54 89,5 6,7,9 程式碼: import pandas as pd import numpy as np import re def f