[英]What are the differences between C/C++ bare-metal compilation and compilation for a specific OS (Linux)?
假設您有一個交叉編譯工具鏈,它為ARM體系結構生成二進制文件。
您的工具鏈是這樣的(在使用Linux的X86_64機器上運行):
...以及用於ARM交叉編譯的大量其他工具。
我感興趣的點是:
我最近開始了一個在裸機環境中使用Linux標准C庫的小項目。 我一直在我的博客上描述它: http : //ellcc.org/blog/? page_id = 289基本上我所做的是設置一種處理Linux系統調用的方法,以便通過實現某些系統調用的簡化版本我可以使用標准庫中的函數。 例如,ARM的當前狀態實現了read(),readv(),write(),writev()和brk()的簡化版本。 這允許我使用printf(),fgets()和malloc()不變。
我是我的情況,我使用相同的編譯器來定位Linux和裸機。 由於它是基於clang / LLVM的,我也可以使用相同的編譯器來定位其他處理器。 我現在正在為Mips做一個裸機示例。
所以我想答案是沒有任何區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.