當前位置:首頁 » 編程軟體 » musl庫編譯使用

musl庫編譯使用

發布時間: 2023-08-03 07:28:48

『壹』 編譯openwrt報錯

主要原因可能上是因為內存不足, 臨時使用交換分區來解決
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile

編譯結束後關閉並刪除

sudo swapoff /swapfile
sudo rm /swapfile

『貳』 openwrt編譯載入龍尚U8300 4G網卡

1、修改config:
make menuconfig選擇:
Base system ---> udev
Kernel moles ---> USB Support ---> kmod-usb-acm kmod-usb-net kmod-usb-net-qmi-wwan kmod-usb-ohci kmod-usb-serial kmod-usb-serial-option
LuCI ---> Protocols ---> luci-proto-3g luci-proto-qmi
Network ---> uqmi
Utilities ---> usb-modeswitch usbutils

make kernel_menuconfig
進入device drivers->usb support->support for host-side usb選擇USB Modem (CDC ACM) support

進派指入USB Serial Converter support選擇:

2、修改option.c: build_dir/target-x86_64_musl/linux-x86_64/linux-4.9.146/drivers/usb/serial/option.c ,加入8300的pid和vid

static const struct usb_device_id option_ids[] = {
加入

drivers/network/usb/qmiw_wan.c文件添加其USB ID,只有這樣當modem插入時內核根據其id就可以載入qmi_wwan驅動了。

3、編譯後發現/dev下多了ttyUSB1234四個節點和頌羨辯cdc-wan0,ifconfig -a多出一個wwan0。

修改路由配置文件vi /etc/config/network

添加如野缺下內容

打開介面界面,wan點擊連接,發現撥號成功,可以上網了。

『叄』 編譯openwrt出現這個錯誤,有人知道怎麼解決嗎

首先, 安裝完依賴(並不是所有的依賴都被腳本檢查), 請參考 OpenWrt Buildroot 然後, 請使用較新的linux發行版, 因為openwrt比較新, 所以相應的host編譯主機也要比較新才行. 最後, 在網路通暢情況下編譯, 再運行一次make V=s試試

『肆』 我為什麼要選擇Rust

你好,很高興為你解答。
專訪資深程序員庄曉立:我為什麼要選擇Rust?
Rust是由Mozilla開發的注重安全、性能和並發性的編程語言。這門語言自推出以來就得到了國內外程序員的大力推崇。Rust聲稱解決了傳統C語言和C++語言幾十年來飽受責難的內存安全問題,同時還保持了極高的運行效率、極深的底層控制、極廣的應用范圍。但在國內有關Rust的學習文檔並不多見,不久前,筆者聯繫上了Rust1.0版本代碼貢獻者庄曉立(精彩博文:為什麼我說Rust是靠譜的編程語言),請他分享Rust語言特性以及學習經驗。
CSDN:你是從什麼時候開始接觸Rust語言的?是什麼地方吸引了你?

庄曉立:我大概從2013年後半年開始深入接觸Rust語言。它居然聲稱解決了傳統C語言和C++語言幾十年來飽受責難的內存安全問題,同時還保持了極高的運行效率、極深的底層控制、極廣的應用范圍。

其ownership機制令人眼前一亮,無虛擬機(VM)、無垃圾收集器(GC)、無運行時(Runtime)、無空指針/野指針/內存越界/緩沖區溢出/段錯誤、無數據競爭(Data Race)……所有這些,都深深地吸引了我——這個十多年以來深受C語言折磨的痛並快樂著的程序員。

CSDN:在你看來,Rust是怎樣的一門語言?它適合開發什麼類型的項目?為何你會說Rust不懼怕任何競爭對手,它既能取代C語言地位;又可挑戰C++市場,還可向Java、Python分一杯羹?與這些語言相比,Rust有哪些優越的特性?

庄曉立:Rust是一門系統編程語言,特別適合開發對CPU和內存佔用十分敏感的系統軟體,例如虛擬機(VM)、容器(Container)、資料庫/游戲/網路伺服器、瀏覽器引擎、模擬器等,而這些向來主要都是C/C++的傳統領地。

此外,Rust在系統底層開發領域,如裸金屬(bare metal)、操作系統(OS)、內核(kernel)、內核模塊(mod)等,也有強勁的實力,足以挑戰此領域的傳統老大C語言。Rust豐富的語言特性、先進的設計理念、便捷的項目管理,令它在上層應用開發中也能大展拳腳,至少在運行性能上比帶VM和GC的語言要更勝一籌。無GC實現內存安全機制、無數據競爭的並發機制、無運行時開銷的抽象機制,是Rust獨特的優越特性。

其他語言很難同時實現這些目標,例如傳統C/C++無法保證內存安全,Java/Python等無法消除運行時開銷。但Rust畢竟還是很年輕的項目,它釋放影響力需要時間,被世人廣泛接受需要時間;它的潛力能否爆發出來,需要時間去檢驗。我們只需耐心等待。

CSDN:Rust在國內有沒有具體的實際使用案例?

庄曉立:因為Rust1.0正式版剛剛發布不足一月,在國內影響力還不大,我們不能苛求它在國內有實際應用案例。但是在國外,一兩年前就已經有OpenDNS和Skylight把Rust應用在生產環境。還有瀏覽器引擎Servo、Rust編譯器和標准庫、項目管理器Cargo等「兩個半大型應用案例」。這些足夠說明Rust語言的成熟和實用。

CSDN:你參與了Rust1.0版本代碼貢獻,目前該版本正式版已經發布,對此你感覺如何?這門語言是否已經達到比較成熟的階段?

庄曉立:我積極參與了Rust語言開源項目,多次貢獻源代碼,曾連續三次出現在Rust官方博客公布的Rust 1.0 alpha、Rust 1.0 beta和Rust 1.0正式版的貢獻者名單中。在Rust 1.0正式版出台的過程中及此前的很長一段時間,開發者付出了極大的努力,確保Rust 1.0正式版在Semver 2.0規范下,務必保持向後兼容性,除非遇到重大Bug不得不修復。

我認為,在1.0正式發布之後,Rust就已經進入了比較成熟的階段。而且,Rust還在快速迭代發展過程中,1.0發布6周後將發布1.1,再6周後將發布1.2,必然會一步一個台階,越來越成熟穩定。

CSDN:除了功能優先順序以外,在你看來,Rust正在朝什麼方向發展?未來的Rust可以期待什麼樣的特性?

庄曉立:Rust一定會沿著「確保內存安全、無運行開銷、高效實用」的既定方向持續發展。在短期內值得期待的語言特性有:動態Drop、偏特化、繼承、改進borrow checker、改進宏和語法擴展。短期內值得期待的其他特性有:增強文件系統API、提供內存申請釋放API、更好地支持Windows和ARM、更快的編譯速度、更方便的二進制分發機制(MUSL)、更實用的工具等等。

CSDN:據我了解,你之前也比較推崇Go語言,為何想到放棄Go轉向Rust?

庄曉立:推崇Go語言還談不上,不過我曾經嘗試努力接受Go語言,2011底年開始我曾經花費將近半年時間深度關注Go開發進程,提了很多具體的改進意見和建議,也曾經多次嘗試貢獻源代碼。後來考慮到Go語言的設計理念跟我偏差太大,其社區也不太友好,慢慢地疏遠了它。我曾經寫過一篇博客《我為什麼放棄Go語言》,談到了很多具體的原因。

CSDN:國內,參與Rust代碼貢獻的開發者多嗎?有核心的人員嗎?有哪些社區在維護Rust?

庄曉立:國內參與Rust代碼貢獻的開發者並不多,但也不少,官方的貢獻者名單中也偶見幾個貌似國人的名字。Rust的核心開發人員基本上都是Mozilla公司的員工,他們專職負責開發維護Rust語言和相關的項目,Rust社區也主要是他們參與組織和管理的。社區人員討論主要集中在GitHub項目主頁RFC/PR/Issue官方、Discuss論壇/IRC、Reddit、HN、StackOverflow等。

『伍』 golang編寫的項目,使用alpine製作鏡像遇到的一個問題解決

GraphicsMagick,一款高性能的圖片處理工具,由於項目需要,用到它,自然而然用到了關於gm的第三方庫 https://github.com/gographics/gmagick 這個庫按照作者的提示,要安裝GraphicsMagick-devel依賴。
項目寫完了,接下來用alpine做為基礎鏡像,准備製作項目的鏡像。
golang項目,是在ubuntu下編孝亂寫的,編譯成二進制文件了,只要把二進制文件放進鏡像里即可,遇到的問題有2個
1 容器跑起來,一直報二進制文件no found
我認認真真的確認了文件,以及它的路徑,確實是存在的,怎麼會報文件找不到呢?!
原來是musl和glibc是兼容的問題,在Dockerfile里要加以下兩步

2 Error loading shared library libGraphicsMagickWand-Q16.so.2: No such file or directory
明明按要求安裝GraphicsMagick-devel依賴,為啥還報這種錯

於是想到了,是不是也要ln做一下軟鏈接呢?於是學著上面的樣子在Dockerfile里補上

再跑,問題依舊,莫非是軟連接的地址寫錯了!回到開發的電腦上用ldd命令查看一下

果然,編譯後消慎肆的二進制文件依賴路徑是/lib,而不是/lib64

於是,修改Dockerfile里的寫法

問題拿轎解決,開心:)

參考資料:
https://cloud.tencent.com/developer/article/1419659

熱點內容
支持ftp的免費空間 發布:2025-02-05 16:32:00 瀏覽:888
python時間比較 發布:2025-02-05 16:31:46 瀏覽:49
手機銀行的密碼怎麼改密碼忘了怎麼辦啊 發布:2025-02-05 16:02:02 瀏覽:179
演算法牛人左 發布:2025-02-05 15:31:02 瀏覽:439
php篩選功能 發布:2025-02-05 15:29:09 瀏覽:168
ip匹配伺服器 發布:2025-02-05 15:10:35 瀏覽:909
php語法後 發布:2025-02-05 15:10:34 瀏覽:59
oppor9s怎麼壓縮文件 發布:2025-02-05 15:00:34 瀏覽:639
蘋果耳塞怎麼改安卓也能用 發布:2025-02-05 14:50:54 瀏覽:558
安卓如何鑒別手機真假 發布:2025-02-05 14:28:15 瀏覽:121