哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux下如何編譯C程序?

Q4MP_gh_c472c21 ? 來源:嵌入式大雜燴 ? 2020-09-20 10:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Windows下常用IDE來編譯,Linux下直接使用gcc來編譯,編譯過程是Linux嵌入式編程的基礎,也是嵌入式高頻基礎面試問題。

一、命令行編譯及各個細分編譯過程

hello.c示例代碼:

#include intmain(void) { printf("Helloworld "); return0; }

編譯:

gcchello.c-ohello

如有必要,還需回答出細分的幾個步驟:

gcc-Ehello.c-ohello.i#預處理階段 gcc-Shello.i-ohello.s#編譯階段 gcc-chello.s-ohello.o#匯編階段 gcchello.o-ohello#鏈接階段

具體細節(jié)可查往期筆記:《C程序編譯過程》

二、借助make來編譯

少量文件時可以使用上面方法編譯。源碼文件較多時,可借用make工具。make通過解析Makefile文件來執(zhí)行一些gcc命令進行編譯。

首先得創(chuàng)建一個Makefile文件,如:

hello:hello.c gcchello.c-ohello

編譯運行:

上面更細分編譯過程的Makefile文件如下:

關于make及Makefile更多內容可查閱:

【Linux筆記】make工程管理工具(一)

【Linux筆記】make工程管理工具(二)

三、借助CMake生成Makefile

實際開發(fā)很少會像上面一樣自己編寫Makefile文件,可借助cmake工具來生成。

CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。

1、命令行操作

首先輸入cmake --version命令查看cmake版本,若還沒安裝則執(zhí)行如下命令安裝:

sudoaptinstallcmake

下面開始實驗演示。我們的cmake_test文件夾下有一個hello.c文件,在同文件夾下創(chuàng)建一個 CMakeLists.txt 文件:

輸入如下內容:

cmake_minimum_required (VERSION 3.10.2) project (cmake_test) add_executable(cmake_test hello.c)

然后在cmake_test目錄下依次輸入如下命令生成Makefile文件:

mkdirbuild#創(chuàng)建build文件夾 cdbuild#進入build文件夾 cmake../#在cmake_test文件夾下生成Makefile

執(zhí)行結果如下:

關于CMakeLists.txt文件具體語法感興趣的朋友可自行查閱資料進行學習。

2、使用cmake-gui

上述是在命令行下使用cmake生成Makefile進行進行編譯的方法。我們也可以使用圖形化界面來生成Makefile文件。cmake-gui是cmake的一個圖形化工具。下面依舊以實例作為演示。

我們把上一小節(jié)的CMakeLists.txt 與hello.c文件放入新創(chuàng)建的文件夾cmake-gui_test中:

在終端輸入 cmake-gui 命令啟動cmake-gu圖形化工具。若未安裝可輸入如下命令進行安裝:

sudoaptinstallcmake-qt-gui

如:

啟動cmake-gui:

查看cmake-gui_test文件夾:

編譯運行:

以上分享了一些編譯的過程及方法,都是基礎內容,需要熟練掌握。如果覺得文章對你有幫助,歡迎轉發(fā)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5208

    文章

    20603

    瀏覽量

    336500
  • Linux
    +關注

    關注

    88

    文章

    11803

    瀏覽量

    219454
  • C程序
    +關注

    關注

    4

    文章

    255

    瀏覽量

    37676

原文標題:還能這樣用?Linux下如何編譯C程序?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux 開發(fā)嵌入式必備命令速查表

    在嵌入式開發(fā)中,Linux系統(tǒng)幾乎成為必備的開發(fā)環(huán)境。不管你是在做STM32、RaspberryPi、還是基于ARM的板子,熟練掌握Linux命令不僅能加快開發(fā)效率,還能讓你在調試、交叉編譯、文件
    的頭像 發(fā)表于 01-19 09:06 ?992次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>下</b>開發(fā)嵌入式必備命令速查表

    Linux Swap交換空間詳解:Android編譯內存不足?這樣擴充立竿見影

    ? ? 在 ?Linux? 系統(tǒng)使用過程中,你是否遇到過? “ 內存不足 ”? 的報錯?比如編譯? Android? 源碼時,明明按教程操作,卻因物理內存沒達到? 16G? 要求而編譯中斷?這正是
    的頭像 發(fā)表于 12-06 08:10 ?4507次閱讀

    別再迷糊了!Linux交叉編譯到底是個啥?一文講清楚

    很多工程師第一次聽到“交叉編譯”這4個字時,腦袋里往往會冒出兩個字: 抽象 。 明明寫代碼寫得好好的,為啥還要搞一個“交叉”?編譯不就是把源代碼變成可執(zhí)行程序嗎,難道還會繞幾個彎? 別急,今天我們
    的頭像 發(fā)表于 12-03 16:28 ?1251次閱讀
    別再迷糊了!<b class='flag-5'>Linux</b>交叉<b class='flag-5'>編譯</b>到底是個啥?一文講清楚

    基于 DR1M90 的 Linux-RT 內核開發(fā):從編譯配置到 GPIO / 按鍵應用實現(xiàn)(1)

    本手冊由創(chuàng)龍科技研發(fā),針對 DR1M90,詳述 Linux-RT 實時內核開發(fā):含實時性測試(LinuxLinux-RT 對比、CPU 空載 / 滿負荷 / 隔離狀態(tài)測試)、內核配置編譯
    的頭像 發(fā)表于 12-02 10:38 ?1283次閱讀
    基于 DR1M90 的 <b class='flag-5'>Linux</b>-RT 內核開發(fā):從<b class='flag-5'>編譯</b>配置到 GPIO / 按鍵應用實現(xiàn)(1)

    Linux 交叉編譯實戰(zhàn):跑起來你的第一個 STM32 程序

    很多開發(fā)者第一次接觸STM32,總會被“交叉編譯”、“燒錄程序”等概念繞暈。其實方法很簡單:在Linux配置交叉編譯環(huán)境,編寫簡單
    的頭像 發(fā)表于 11-24 19:04 ?1005次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>下</b>交叉<b class='flag-5'>編譯</b>實戰(zhàn):跑起來你的第一個 STM32 <b class='flag-5'>程序</b>

    Linux系統(tǒng)編譯C語言仿真蜂鳥E203(二)

    NUCLEI_TOOL_ROOT路徑,便于編譯的時候能夠找到其路徑的gcc工具鏈 NUCLEI_TOOL_ROOT=/home/ICer/Nuclei_Tools Nuclei_Tools文件夾下的gcc文件中
    發(fā)表于 10-24 13:38

    蜂鳥例程的編譯程序的加載

    compile,編譯run的文件,編譯過程同樣使用了riscv的toolchain;最后make run,使用VCS平臺執(zhí)行TESTCASE對應的仿真程序。 1.2 高級語言
    發(fā)表于 10-24 13:34

    rtsmart開啟C++特性支持后,工具鏈編譯內核不通過怎么解決?

    各位大佬好,本人在rtsmart項目中需要使用C++11特性,在menuconfig那里配置了支持C++特性后,使用7.3.0版本的arm-linux-musleabi編譯
    發(fā)表于 09-29 07:49

    開發(fā)環(huán)境一鍵部署 | 如何搭建Docker環(huán)境編譯ARM程序?

    點:環(huán)境搭建為何如此關鍵?嵌入式Linux開發(fā),環(huán)境是地基。傳統(tǒng)方式,開發(fā)者往往需要:四處搜尋匹配的工具鏈版本手動配置復雜的編譯參數(shù)多次反復適配環(huán)境耗費數(shù)日搭建
    的頭像 發(fā)表于 08-15 11:06 ?1129次閱讀
    開發(fā)環(huán)境一鍵部署 | 如何搭建Docker環(huán)境<b class='flag-5'>編譯</b>ARM<b class='flag-5'>程序</b>?

    【HZ-T536開發(fā)板免費體驗】2 - 交叉編譯倉頡編程語言程序到開發(fā)板運行

    。 可以對前面的hello.cj進行一交叉編譯: cjc test.cj --target aarch64-unknown-linux-gnu -o test1-B /usr
    發(fā)表于 07-16 21:27

    如何單獨編譯linux內核?

    那套sdk?純linux sdk編譯方法見readmehttps://github.com/kendryte/k230_linux_sdk/ make linux
    發(fā)表于 07-11 08:06

    linux使用cyusbserial SDK錯誤怎么解決?

    我使用的TI DLP3010EVM模塊是通過CY7C65215 芯片進行控制的,我可以在win環(huán)境正常使用TI DLP的調試軟件或者使用cyusbserial SDK的vs程序完成對設備的控制
    發(fā)表于 06-03 07:46

    能否提供LinuxUSB轉SPI模式的測試程序

    我已在 Linux 上成功配置了 CY7C65211 器件,使其在 USB 轉 SPI 模式運行。 使用 lsusb 命令,設備顯示如下:總線 003 設備 002:ID 04b4:0004
    發(fā)表于 05-22 06:16

    不借助Linux系統(tǒng),在Windows如何搭建ZMC900E交叉編譯環(huán)境

    嵌入式Linux系統(tǒng),由于系統(tǒng)資源的匱乏,通常無法安裝本地編譯器進行本地開發(fā),而需要在借助一臺主機進行交叉開發(fā)。一般情況,在主機安裝相應的交叉編譯器,將在主機編
    的頭像 發(fā)表于 05-21 11:34 ?1058次閱讀
    不借助<b class='flag-5'>Linux</b>系統(tǒng),在Windows<b class='flag-5'>下</b>如何搭建ZMC900E交叉<b class='flag-5'>編譯</b>環(huán)境

    Linux環(huán)境再升級:PLIN驅動程序正式發(fā)布

    PLIN驅動程序現(xiàn)已正式發(fā)布,本文將展示如何安裝PLIN驅動程序,以及如何在Linux環(huán)境進行基本的PLIN通信操作,確保您能夠快速掌握并應用這一新工具。
    的頭像 發(fā)表于 04-21 15:29 ?1179次閱讀
    <b class='flag-5'>Linux</b>環(huán)境再升級:PLIN驅動<b class='flag-5'>程序</b>正式發(fā)布
    宿州市| 定陶县| 天水市| 博客| 延边| 巧家县| 永春县| 泊头市| 安西县| 五华县| 鄂尔多斯市| 宜城市| 赤城县| 琼海市| 涿鹿县| 湘潭县| 娱乐| 新安县| 沽源县| 始兴县| 阿克苏市| 理塘县| 扎赉特旗| 沙坪坝区| 朝阳区| 滁州市| 沐川县| 商南县| 丹东市| 莒南县| 长宁县| 南木林县| 丹东市| 龙游县| 张家界市| 乌苏市| 邯郸县| 锡林郭勒盟| 阳江市| 武威市| 左贡县|