如何利用德州金航网站建设社区论坛自助建站网进行有效的优化?

摘要:德州金航网站建设,社区论坛自助建站网,海外贸易网站,不属于网络推广方法Golang交叉编译遇到的问题 交叉编译go支持的平台和版本 交叉编译 go支持的平台和版本 查询命令: go tool dist list
德州金航网站建设,社区论坛自助建站网,海外贸易网站,不属于网络推广方法Golang交叉编译遇到的问题 交叉编译go支持的平台和版本 交叉编译 go支持的平台和版本 查询命令#xff1a; go tool dist list显示结果#xff1a; aix/ppc64android/386android/amd64android/armandroid/arm64darwin/amd64darwin/arm64dragonfly/amd64freebsd/386freebsd/… Golang交叉编译遇到的问题 交叉编译go支持的平台和版本 交叉编译 go支持的平台和版本 查询命令 go tool dist list显示结果 aix/ppc64android/386android/amd64android/armandroid/arm64darwin/amd64darwin/arm64dragonfly/amd64freebsd/386freebsd/amd64freebsd/armfreebsd/arm64illumos/amd64ios/amd64ios/arm64js/wasmlinux/386linux/amd64linux/armlinux/arm64linux/loong64linux/mipslinux/mips64linux/mips64lelinux/mipslelinux/ppc64linux/ppc64lelinux/riscv64linux/s390xnetbsd/386netbsd/amd64netbsd/armnetbsd/arm64openbsd/386openbsd/amd64openbsd/armopenbsd/arm64openbsd/mips64plan9/386plan9/amd64plan9/armsolaris/amd64windows/386windows/amd64windows/armwindows/arm64golang 在跨平台编译时只需要指定目标操作系统的 OSGOOSdarwin和 CPU 架构GOARCHamd64通过 go env -w GOARCHxxx 来进行指定在不需要引入 CGO 代码进行交叉编译时需要指定 CGO_ENABLE0使用 CGO 代码时必须指定 CGO_ENABLE1当 CGO_ENABLE1 时必须制定了交叉编译链CCgcc 和 CXXg假设我们编译32位 mipsle 平台的程序就要提前下载 mipsle 版本的c交叉编译工具CGO_ENABLED1 GOOSlinux GOARCHmipsle CCmipsel-linux-uclibc-gcc CXXmipsel-linux-uclibc-g go build xxx.gomips是big-endian的mips架构mipsel是little-endian的mips架构如果调用的 CGO 调用了 C 代码中的各种依赖库那么在编译的时候回报依赖库 not found解决方案是必须在编译时加上指定的参数链接的库必须交叉编译到目标平台的系统库而不是当前系统主要是三个参数-I , -isystem , -L 例如CGO_ENABLED1 GOOSlinux GOARCHmipsle CCmipsel-linux-uclibc-gcc -Wall -stdc11 -Llib -isystem/aarch64/usr/include -L/aarch64/lib -ldl -lpthread -Wl,-rpath-link,/aarch64/lib -L/aarch64/lib/aarch64-linux-gnu -L/aarch64/usr/lib -I/aarch64/usr/include -L/aarch64/usr/lib/aarch64-linux-gnu -ldl -lpthread -Wl,-rpath-link,/aarch64/usr/lib/aarch64-linux-gnu -lphonon -lcurl -lprotobuf go build xxx.go尽量不要用 CGO 会降低代码的可读性和交叉编译的复杂度以及后期维护