日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 静态编译 yara

發(fā)布時間:2025/3/21 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 静态编译 yara 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近有個需求,要在go中調用yara,發(fā)現(xiàn)官方的go-yara跨平臺做的不是很好,于是決定在go中直接調用外部yara程序,這樣只需要寫一份代碼在windows和linux上都能用了。

發(fā)現(xiàn)官方只提供了windows的發(fā)布程序,linux需要自行編譯或者apt yum 安裝,但是用戶的環(huán)境中沒有網,無法apt yum,所以只剩下兩條路,讓用戶自己編譯yara或者我先編譯好再與go程序一起發(fā)布。想想第一種方案其實是不可能的,因為編譯yara需要許多工具,也是需要下載的:

sudo apt-get install automake libtool make gcc pkg-config

于是只剩下最后一個方法,自己編譯yara。這里就遇到困難了,按照官方編譯教程:

./bootstrap.sh ./configure make

編譯出來的yara是動態(tài)鏈接的,比如我在ubuntu編譯好,拿到centos是無法運行的,缺庫。windows只要將需要的dll和exe放在一個目錄下就行了,linux卻不是這樣。

反正就挺折騰的,網上說gcc靜態(tài)編譯出來的程序不是真正的靜態(tài)編譯,可能要換musl之類的編譯器才行,這里又因為yara用了configure自動生成makefile,我又不會makefile,就很頭大。但是不管怎樣現(xiàn)在問題暫時解決了,我在ubuntu編譯出yara,file 看是靜態(tài)鏈接的,拿到centos也能用,暫時沒發(fā)現(xiàn)什么異常,所以我就把現(xiàn)在這個可能不是很完美的解決方案記錄下來:

如果安裝官方的方法編譯,出來的程序是 dynamic linked 的。那么應該怎么改呢,參考這篇文章:

https://stackoverflow.com/questions/20068947/how-to-static-link-linux-software-that-uses-configure

所以只需要執(zhí)行下面的命令就好了:

./bootstrap.sh ./configure CFLAGS="-static" make LDFLAGS="-all-static"

給 configure 和 make 都加上 static 的要求就行了,這有個前提,項目必須包含 libtool 這玩意,yara是符合要求的。

總結

以上是生活随笔為你收集整理的linux 静态编译 yara的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。