2022/10/12

cross compile mener (mender-client) for aarch64

其實就是照 官方文件 說的..
  • cross build openssl
  • cross build xz
  • cross build mender (client)
原先想用target board 上 buildroot build 好的 openssl 跟 xz,結果在 make 的時候,說找不到 libz.so
即使有把 libz.so 也放到 -L libpath,結果也一樣。
應該是沒有加上 -lz

所以只好依照官方文件,corss build openssl,這樣就會 disable zlib support,就不會需要 libz。
最後是偷懶把 openssl, xz 的 include/* copy 到 mylib/include,把 lib/* copy 到 mylib/lib

先加入 cross-compile toolpath
在宣告 cross compile tool:
export CC=aarch64-linux-gnu-gcc
然後 make
make CGO_CFLAGS="-I/home/charles-chang/mylib/include" CGO_LDFLAGS="-L/home/charles-chang/mylib/lib" CGO_ENABLE=1 GOOS=linux GOARCH=arm64 TAGS=nodbus
如果要 dbus 的話,還要 cross compile glib

其他這注意事項:
用 go 1.10 版失敗,先是說 main.go app 找不到,他一定要在 $GOPATH/src/github.com/mendersoftware,
但是照著 set GOPATH,clone ,error 變成語法錯誤。
最後還是改用 go 1.13 直接就成功了。

就 apt install golang-1.13,然後手動改 /usr/bin/go link 到 ../lib/go-1.13.0/bin/go

沒有留言:

張貼留言