移植的本質是什么

? ? ? ?有斷時間我就在想,為什么freertos,lvgl等等的移植都是把庫文件放進來,直接點擊編譯,然后把bug都處理完成就移植成功了,為什么呢?

明明我一個函數都沒調用,為什么會有一堆錯誤,莫名其妙又能修改好,就移植成功了。

這里涉及到一個知識,在 C/C++ 中,編譯器會將每個源文件編譯為目標文件(.o.obj),然后鏈接器會將這些目標文件和庫文件鏈接成最終的可執行文件。當你添加了一個庫(比如 LVGL 或 FreeRTOS)到項目中,即便你沒有顯式調用庫中的函數,編譯器和鏈接器仍然會處理該庫中的代碼,尤其是當庫中有全局變量、宏或初始化代碼時,編譯器和鏈接器可能會自動識別出某些依賴。

? ? 意思你不進行調用,編譯器也會把放進來的文件進行包含關系的依賴排查!!!

? ? 所以,所謂的移植成功,就把庫文件包含進來,單純的編譯就是來排除他們直接各種全局變量、宏或初始化的依賴關系,移植成功就是把這些依賴關系處理成功,也就是所謂的跑通!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81928.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81928.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81928.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

廣告場景下的檢索平臺技術

檢索方向概述 數據檢索領域技術選型大體分為SQL事務數據庫、NoSQL數據庫、分析型數據庫三個類型。 SQL數據庫的設計思路是采用關系模型組織數據,注重讀寫操作的一致性,注重數據的絕對安全。為了實現這一思路,SQL數據庫往往會犧牲部分性能&…

高頻PCB設計如何選擇PCB層數?

以四層板為例,可以第一層和第二層畫信號,作為信號層。 第三層可以走電源,然后第四層走GND 但是更可以第一層和第三層畫信號。第二層可以走電源,然后第四層走GND 用中間的電源層以及地層可以起到屏蔽的作用,有效降低寄…

[Linux_69] 數據鏈路層 | Mac幀格式 | 局域網轉發 | MTU MSS

目錄 0.引入 1.以太網幀格式 2.重談局域網轉發的原理(基于協議) 小結 3.認識MTU 3.1MTU對IP協議的影響 3.2MTU對UDP協議的影響 3.3MTU對于TCP協議的影響 0.引入 在去年的這篇文章中,我們有對網絡進行過一個概述[Linux#47][網絡] 網絡協議 | TCP/IP模型 | 以…

vue2 provide 后 inject 數據不是響應式的,不實時更新

今天用 provide 后&#xff0c;inject 獲取數據時不是實時更新的&#xff0c;獲取的不是更新后的值 祖父組件 <div style"text-align: left !important;"><button click"change">更改</button> </div>data() {return {name: ini…

洛谷---P1629 郵遞員送信

題目描述 有一個郵遞員要送東西&#xff0c;郵局在節點 1。他總共要送 n?1 樣東西&#xff0c;其目的地分別是節點 2 到節點 n。由于這個城市的交通比較繁忙&#xff0c;因此所有的道路都是單行的&#xff0c;共有 m 條道路。這個郵遞員每次只能帶一樣東西&#xff0c;并且運…

2025年LangChain(V0.3)開發與綜合案例

LangChain是什么&#xff1f; 在實際企業開發中&#xff0c;大模型應用往往比簡單的問答要復雜得多。如果只是簡單地向大模型提問并獲取回答&#xff0c;那么大模型的許多強大功能都沒有被充分利用。 要開始使用LangChain&#xff0c;首先需要安裝相關的庫&#xff1a; pip …

十分鐘了解 @MapperScan

MapperScan 是 MyBatis 和 MyBatis-Plus 提供的一個 Spring Boot 注解&#xff0c;用于自動掃描并注冊 Mapper 接口&#xff0c;使其能夠被 Spring 容器管理&#xff0c;并與對應的 XML 或注解 SQL 綁定。它的核心作用是簡化 MyBatis Mapper 接口的配置&#xff0c;避免手動逐個…

深度解析 MindTorch:無縫遷移 PyTorch 到 MindSpore 的高效工具

在深度學習領域&#xff0c;框架的選擇往往取決于開發者的習慣、硬件支持以及項目需求。PyTorch 作為當前最受歡迎的深度學習框架之一&#xff0c;以其動態圖機制和簡潔的 API 設計深受開發者喜愛。然而&#xff0c;隨著昇騰硬件的崛起&#xff0c;如何高效地利用昇騰的強大計算…

[250506] Auto-cpufreq 2.6 版本發布:帶來增強的 TUI 監控及多項改進

目錄 Auto-cpufreq 2.6 版本發布&#xff1a;帶來增強的 TUI 監控及多項改進 Auto-cpufreq 2.6 版本發布&#xff1a;帶來增強的 TUI 監控及多項改進 Auto-cpufreq&#xff0c;一款適用于 Linux 的免費開源自動 CPU 速度與功耗優化器&#xff0c;已發布其最新版本 2.6。該工具…

Linux 更改內存交換 swap 為 zram 壓縮,減小磁盤寫入

1、查看當前 swap 的方式 swapon --show 我這里是默認的 swap 文件&#xff0c;大小為 2G。 2、安裝 zram Ubuntu 下&#xff1a; sudo apt install zram-tools安裝后默認會啟動&#xff1a; 3、關閉默認的 swap 文件 sudo swapoff /swapfile 其次是關閉 /etc/fstab 中的 …

ORCAD打印pdf

1 筆記本電腦綁定了打印機&#xff0c;要改成這個

C++中指針使用詳解(4)指針的高級應用匯總

C 中指針的高級應用非常豐富&#xff0c;掌握這些內容能讓你寫出更高性能、更底層控制力強的代碼。下面是應用模塊梳理和例子講解。 目錄預覽 函數指針與回調機制指針數組 vs 數組指針指針與類成員函數&#xff08;成員函數指針&#xff09;智能指針&#xff08;unique_ptr, s…

圖像處理軟件imgPro—調參救星!

推薦一款圖像處理軟件imgPro&#xff0c;該軟件是逛B站時偶然間發現&#xff0c;雖然up主是新號&#xff0c;但是視頻中看起來非常實用&#xff01; 核心是多種算法高效調參&#xff0c;亮點是自動生成源碼&#xff01;這您受得了嗎&#xff1f;調試之后&#xff0c;直接復制代…

DOM基礎學習

一、DOM文檔對象模型 通常將DOM看作一顆“樹”&#xff0c;DOM將整個文檔看作一顆“家譜樹 ” 二、對象 用戶定義的對象內建對象&#xff08;Array、Date、Math&#xff09;宿主對象 三、節點 node 元素節點&#xff08;element node&#xff09;文本節點&#xff08;text…

初識人工智能、機器學習、深度學習和大模型

文章目錄 1. 前言2. 相關概念3. 層級關系4. 應用場景對比4. 實際案例 初識人工智能、機器學習、深度學習和大模型 1. 前言 之前經常聽人說AI、機器學習&#xff0c;深度學習之類的詞匯&#xff0c;總是傻傻的不了解他們的區別&#xff0c;近來有空&#xff0c;來通俗說說個人看…

n8n系列(1)初識n8n:工作流自動化平臺概述

1. 引言 隨著各類自動化工具的涌現,n8n作為一款開源的工作流自動化平臺,憑借其靈活性、可擴展性和強大的集成能力,正在獲得越來越多技術團隊的青睞。 本文作為n8n系列的開篇,將帶您全面了解這個強大的自動化平臺,探索其起源、特性以及與其他工具的差異,幫助您判斷n8n是否…

Linux:web服務

一、nginx的安裝及啟用 1、為主機配置IP和搭建軟件倉庫 &#xff08;1&#xff09;IP的配置 &#xff08;2&#xff09;搭建軟件倉庫 2、 web服務的安裝與啟用 &#xff08;1&#xff09;nginx的端口 更改nginx端口號 效果 &#xff08;2&#xff09; 默認發布目錄 修改默認發…

用卷積神經網絡 (CNN) 實現 MNIST 手寫數字識別

在深度學習領域&#xff0c;MNIST 手寫數字識別是經典的入門級項目&#xff0c;就像編程世界里的 “Hello, World”。卷積神經網絡&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;作為處理圖像數據的強大工具&#xff0c;在該任務中展現出卓越的性能。本…

從 MDM 到 Data Fabric:下一代數據架構如何釋放 AI 潛能

從 MDM 到 Data Fabric&#xff1a;下一代數據架構如何釋放 AI 潛能 —— 傳統治理與新興架構的范式變革與協同進化 引言&#xff1a;AI 規模化落地的數據困境 在人工智能技術快速發展的今天&#xff0c;企業對 AI 的期望已從 “單點實驗” 轉向 “規模化落地”。然而&#…

蒼穹外賣部署到云服務器使用Docker

部署前端 1.創建nginx鏡像 docker pull nginx 2.宿主機&#xff08;云服務器&#xff09;創建掛載目錄和文件 最好手動創建 而不是通過docker run創建&#xff0c;否則nginx.conf 默認會被創建為文件夾 nginx.conf 和html可以直接從黑馬給的資料里導入 3.運行nginx容器&am…