欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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ā)。

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

    關注

    5094

    文章

    19189

    瀏覽量

    307943
  • Linux
    +關注

    關注

    87

    文章

    11351

    瀏覽量

    210494
  • C程序
    +關注

    關注

    4

    文章

    255

    瀏覽量

    36155

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

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

收藏 人收藏

    評論

    相關推薦

    干貨來嘍!實用樹莓派Linux編譯指南

    不友好,有沒有好的解決辦法? 今天來分享一我的私藏干貨——樹莓派Linux編譯。編譯好之后,開發(fā)板只需插到樹莓派上連接電腦就可以直接用了,極其方便。 本文以樹莓派為例,其他板子只要帶
    的頭像 發(fā)表于 12-18 16:31 ?209次閱讀
    干貨來嘍!實用樹莓派<b class='flag-5'>Linux</b><b class='flag-5'>編譯</b>指南

    RZ T2H PCIe裸機程序開發(fā)和Linux的配置介紹

    ,還提供2個PCIe Gen3通道等高速外設。本文主要介紹PCIe外設的功能、裸機EP模式的程序開發(fā)、以及在Linux,如何編譯網卡的流
    的頭像 發(fā)表于 12-18 11:14 ?904次閱讀
    RZ T2H PCIe裸機<b class='flag-5'>程序</b>開發(fā)和<b class='flag-5'>Linux</b><b class='flag-5'>下</b>的配置介紹

    實用樹莓派Linux編譯指南,打工人必備!

    不友好,有沒有好的解決辦法? 今天來分享一我的私藏干貨——樹莓派Linux編譯。編譯好之后,開發(fā)板只需插到樹莓派上連接電腦就可以直接用了,極其方便。 本文以樹莓派為例,其他板子只要帶
    的頭像 發(fā)表于 12-17 16:19 ?992次閱讀
    實用樹莓派<b class='flag-5'>Linux</b><b class='flag-5'>編譯</b>指南,打工人必備!

    用戶手冊 | 全志T113-S3開發(fā)板——SDK編譯指南

    ,不像發(fā)行版那樣需要編譯整個linux系統(tǒng),只需要指定特定開發(fā)的功能包進行交叉編譯即可。本文為大家介紹全志T113-S3開發(fā)板在眺望電子提供的SDK環(huán)境如何
    的頭像 發(fā)表于 11-01 08:08 ?2282次閱讀
    用戶手冊 | 全志T113-S3開發(fā)板——SDK<b class='flag-5'>編譯</b>指南

    C7000優(yōu)化C/C++編譯

    電子發(fā)燒友網站提供《C7000優(yōu)化C/C++編譯器.pdf》資料免費下載
    發(fā)表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++<b class='flag-5'>編譯</b>器

    linux開發(fā)板如何編譯curl

    Linux開發(fā)板上編譯 curl 庫通常涉及到幾個步驟,包括準備開發(fā)環(huán)境、下載源代碼、配置編譯選項以及執(zhí)行編譯和安裝過程。以下是一個基本的指南,幫助你在
    的頭像 發(fā)表于 08-30 15:33 ?797次閱讀

    linux驅動程序如何加載進內核

    ,需要了解Linux內核的基本概念和API。以下是一些關鍵概念: 1.1 內核模塊:Linux內核模塊是一種動態(tài)加載和卸載的代碼,可以在不重新啟動系統(tǒng)的情況加載和卸載。驅動程序通常以
    的頭像 發(fā)表于 08-30 15:02 ?603次閱讀

    linux驅動程序編譯方法是什么

    Linux驅動程序編譯方法主要包括兩種: 與內核一起編譯編譯成獨立的內核模塊 。以下是對這兩種方法的介紹: 一、與內核一起
    的頭像 發(fā)表于 08-30 14:46 ?774次閱讀

    linux驅動程序編譯方法有哪兩種

    Linux驅動程序編譯方法主要可以歸納為兩種: 手動編譯 和 使用內核構建系統(tǒng)(Makefile)自動編譯 。 1. 手動
    的頭像 發(fā)表于 08-30 14:39 ?919次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-Linuxi2c-tools的交叉編譯

    Linuxi2c-tools的交叉編譯1.下載地址:https://archive.kernel.org/oldwiki/i2c.wiki
    發(fā)表于 06-19 09:41

    SEGGER編譯器優(yōu)化和安全技術介紹 支持最新CC++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制器設計的優(yōu)化C/C++編譯器。它建立在強大的Clang前端上,支持最新的C
    的頭像 發(fā)表于 06-04 15:31 ?1540次閱讀
    SEGGER<b class='flag-5'>編譯</b>器優(yōu)化和安全技術介紹 支持最新<b class='flag-5'>C</b>和<b class='flag-5'>C</b>++語言

    寫驅動模塊時候linux內核Vscode中頭文件報紅,clangd插件實現(xiàn)函數(shù)自由跳轉

    /usr/bin/clangd-15 3.用bear編譯內核,即先下載bear再bear -- make..... 4.隨便點擊kernel的.c文件生成compile_commands.json 5.把
    的頭像 發(fā)表于 05-31 09:11 ?1786次閱讀
    寫驅動模塊時候<b class='flag-5'>linux</b>內核Vscode中頭文件報紅,clangd插件實現(xiàn)函數(shù)自由跳轉

    C語言:嵌入式開發(fā)中的關鍵編譯器角色

    嵌入式程序開發(fā)跟硬件密切相關,需要使用C語言來讀寫底層寄存器、存取數(shù)據、控制硬件等,C語言和硬件之間由編譯器來聯(lián)系,一些C標準不支持的硬件特
    發(fā)表于 04-26 14:53 ?701次閱讀
    <b class='flag-5'>C</b>語言:嵌入式開發(fā)中的關鍵<b class='flag-5'>編譯</b>器角色

    嵌入式Linux C語言編程程序調試與宏定義

    Linux使用gcc編譯程序的時候,對于調試的語句還具有一些特殊的語法。gcc編譯的過程中,會生成一些宏,可以使用這些宏分別打印當前源文件的信息,主要內容是當前的文件、當前運行的函數(shù)和當前的
    發(fā)表于 03-01 11:41 ?1132次閱讀

    Linux環(huán)境能使用PSoC Creator 4.3嗎?

    最近碰到一個在Linux系統(tǒng)編譯的要求,PSoC Creator能夠在Linux環(huán)境使用嗎?
    發(fā)表于 02-18 07:22