HOME 首頁
SERVICE 服務產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    gcc鏈接詳細參數(shù)(gcc 鏈接命令)

    發(fā)布時間:2023-04-13 23:40:04     稿源: 創(chuàng)意嶺    閱讀: 65        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于gcc鏈接詳細參數(shù)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    gcc鏈接詳細參數(shù)(gcc 鏈接命令)

    一、怎么在命令行里用gcc去編譯連接一個程序?

    你的說法本身就有問題,gcc編譯的時候只能去鏈接 其他依賴文件和庫(靜態(tài)庫/動態(tài)庫)

    動態(tài)庫:.so結尾,在運行時加載。

    靜態(tài)庫:.a結尾,在編譯時加載。

    例如編譯hello.c 輸出hello可執(zhí)行文件

    鏈接靜態(tài)庫:

    gcc hello.c -L /home/lib -static -l mylib -o hello

    -L參數(shù)可以向gcc的庫文件搜索路徑中添加新目錄

    -static選項強制使用靜態(tài)鏈接庫

    -l mylib -l后面是要靜態(tài)連接的庫(libhellos.a)

    鏈接動態(tài)庫:

    gcc -o hello hello.c -L. -lhello

    -L后面的點為當前目錄

    -lhello 是去鏈接libhello.so

    二、GCC編譯器的參數(shù)與空格

    按照INSTALL中的介紹,也是常用的方法,在configure的時候,加上–host=arm-linux,結果沒有實現(xiàn)我們要的效果,沒有將編譯器從默認的

    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

    ………………..

    后來經(jīng)過多次嘗試,最后受默認的

    CFLAGS=-O2

    ./configure

    進行配置所啟發(fā),想到,是否可以將CC參數(shù)傳入到configure中,

    結果證實,如果沒有自己的cache-file,即時加了對的CC參數(shù),也還是無法傳入:

    [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參數(shù)放在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

    ………………..

    參數(shù)傳遞必須像

    CFLAGS=-O2

    ./configure

    一樣,將參數(shù)設置放在configure的前面:

    CC=arm-linux-gcc./configure

    才能識別的。

    必須要自己制定自己的cache-file

    然后用./configure進行新配置,加上CC參數(shù),才會即時生效,編譯器才可以變成我們要的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參數(shù)傳入了:

    [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是已經(jīng)建立好的,已經(jīng)存在的文件夾,上面這樣表示編譯后,

    將生成的可執(zhí)行文件安裝拷貝到那個目錄.

    三、LINUX下的GCC詳細教程,帶圖片的

    //FileName : hello.c

    #include <stdio.h>

    int main()

    {

    const char * str = "Hello World!";

    return 0;

    }

    標準用法:

    gcc -c hello.c

    ls查看 生成了 hello.c hello.o

    gcc -o hello.o

    ls查看 多了 a.out

    執(zhí)行: ./a.out

    Hello World

    常用的用法:

    gcc -o hello hello.c

    這樣就直接編譯鏈接生成可執(zhí)行文件hello

    ./hello

    Hello World

    不推薦的用法:

    gcc hello.c

    直接生成a.out

    ./a.out

    Hello World

    GCC的命令參數(shù)有一百多條,常用的還有-Wall參數(shù) 用于顯示忽略的警告

    -pthread 多線程編譯 。。。。。。

    可以在命令行下使用 man gcc 查看gcc詳細的參數(shù)和說明文檔

    四、R 包安裝的時候,怎么指定gcc的參數(shù)

    Mac中的開發(fā)工具鏈都是圍繞xcode的,但是對于只想使用gcc,g++編譯c/c++代碼的情況,裝一個xcode實在沒有必要。更新:4.3版本的xcode已經(jīng)將圖形開發(fā)界面和命令行工具分開了發(fā)布了。還有即使裝了xcode,默認帶的gcc編譯器都是lvmm做前端的,并非純正的gnugcc。如果你想用純正的gcc,最好的法就是自己手動編譯一個。主要有以下方法:1.通過port安裝這種方法比較簡單,前提是mac上已經(jīng)安裝port了,具體命令:安裝最新的gcc48:sudoportinstallgcc48默認的安裝目錄是:/opt/local/bin/2.通過homebrew安裝這種方法比較簡單,前提是mac上已經(jīng)安裝homebrew了,具體命令:brewtaphomebrew/versionsbrewinstall[flags]gcc49其中[flags]一些需要支持的語言的桉樹,例如–enable-cxx–enable-fortran3.Github參考mentforcleanup…#cd../../..#rm-rtemp-gcc完成后,將在/usr/gcc-4.8.0安裝gcc,然后可以創(chuàng)建gcc的軟鏈接或者將bin路徑加入到$PAHT變量中

    以上就是關于gcc鏈接詳細參數(shù)相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。


    推薦閱讀:

    bingchatGPT中文版(bongo下載)

    aigc和gpt的區(qū)別(gpt 和)

    正宗的aigc概念股(ai概念股票)

    找索引擎seo(搜索引擎seo)

    個體工商戶營業(yè)執(zhí)照可以過戶嗎(個體戶更換經(jīng)營者姓名)