Yocto tidak boleh kompil silang aplikasi GoLang Wails

WBOY
Lepaskan: 2024-02-05 22:21:12
ke hadapan
962 orang telah melayarinya

Yocto 无法交叉编译 GoLang Wails 应用程序

Kandungan soalan

Saya menggunakan yocto kirkstone untuk membina sistem binaan papan linux terbenam tersuai untuk armv7. Saya mempunyai versi go-runtime 1.20 dalam yocto metallayer saya.

Saya cuba membina contoh mudah aplikasi golang "wails" (https://github.com/wailsapp/wails) yang boleh saya bina pada mac untuk sasaran saya. Ini memerlukan raungan 'cli' untuk dipasang untuk membina aplikasi. Saya tidak tahu bagaimana untuk menyusun silang aplikasi ini dengan yocto. Bagaimana saya boleh melakukan ini? Terima kasih.

Arahan ini gagal dalam do_compile():

wails build .
Salin selepas log masuk

Ralat yang saya terima kelihatan seperti ini:

...
| hash[link github.com/wailsapp/wails/v2/cmd/wails]: "packagefile internal/lazyregexp=pnipfusr6bdvpzrfoo2q\n"
| hash[link github.com/wailsapp/wails/v2/cmd/wails]: 58443e84e42fc0e5254356b82561065095a39a1606a457c34cf63d8dd364173c
| hash subkey a9f4ce5dc6a5c97cab06b5c8cfec3a64e5db0f7bcc79e02fc0002cafcc719a67 "link-stdout" = 80ee6464b934ca7407296396849147804b0862ee25e2b844a6e9cc98cfa588b3
| qemu-arm: could not open '/lib/ld-linux-armhf.so.3': no such file or directory
| warning: /home/sensonix/poky/build-microchip/tmp/work/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi/go-example/1.0.0-r0/temp/run.do_compile.87405:178 exit 255 from './bin/linux_arm/wails build .'
| warning: backtrace (bb generated script):
|       #1: do_compile, /home/sensonix/poky/build-microchip/tmp/work/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi/go-example/1.0.0-r0/temp/run.do_compile.87405, line 178
|       #2: main, /home/sensonix/poky/build-microchip/tmp/work/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi/go-example/1.0.0-r0/temp/run.do_compile.87405, line 186
Salin selepas log masuk

resipi bitbake:

DESCRIPTION = "Wails Example App"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM=""

SRC_URI = "file://wails.json"
SRC_URI += "file://README.md"
SRC_URI += "file://main.go"
SRC_URI += "file://app.go"
SRC_URI += "file://frontend"

GO_IMPORT = "import"
GO_LINKSHARED = ""
PTEST_ENABLED="0"
export GO111MODULE="auto"
CGO_ENABLED = "1"

inherit go goarch

do_compile() {

    cd ${WORKDIR}/build
    export TMPDIR="${GOTMPDIR}"

    ${GO} install github.com/wailsapp/wails/v2/cmd/wails@latest

    export GOPATH="$GOPATH:${S}/src/import/.gopath"

    # Pass the needed cflags/ldflags so that cgo
    # can find the needed headers files and libraries
    export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
    export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"

    ./bin/linux_arm/wails build .

    #${GO} build ${GO_LINKSHARED} ${GOBUILDFLAGS} -o streamerapp

    cd ${OLDPWD}

}

do_install() {

    cd ${WORKDIR}/build
    #install -m <permisions> SRC DEST

    mkdir -p ${D}${bindir}
    #install -m 0755 ./wailsapp ${D}${bindir}

    cd ${OLDPWD}

}
Salin selepas log masuk


Jawapan betul


Saya menyelesaikan masalah ini menggunakan kaedah berikut.

DESCRIPTION = "Wails Example App"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM=""

LICENSE = "CLOSED"

SRC_URI = "git://<a href="https://www.php.cn/link/89fee0513b6668e555959f5dc23238e9" class="__cf_email__" data-cfemail="67000e1327000e130f12054904080a">[email&#160;protected]</a>/abc/go-wails-demo.git;branch=master;protocol=ssh"
SRCREV = "eaa61c30bff997c811da1d176c7273cea4f6b7d8"

GO_IMPORT = "import"
GO_LINKSHARED = ""
PTEST_ENABLED="0"
CGO_ENABLED = "1"

DEPENDS = "nodejs-native"
DEPENDS += "gtk+3 webkitgtk"

INSANE_SKIP:${PN} += "already-stripped"

inherit go goarch pkgconfig

do_compile() {

    # Allow cloning of properietary repositories
    git config --global --add url."<a href="https://www.php.cn/link/89fee0513b6668e555959f5dc23238e9" class="__cf_email__" data-cfemail="e5828c91a5828c918d9087cb868a88">[email&#160;protected]</a>:".insteadOf "https://github.com/"
    ${GO} env -w GOPRIVATE="github.com/abc"

    cd ${WORKDIR}/go-wails-demo-1.0.0/src/import
    export TMPDIR="${GOTMPDIR}"

    # Pass the needed cflags/ldflags so that cgo
    # can find the needed headers files and libraries
    export QEMU_LD_PREFIX="${STAGING_DIR_TARGET}"
    export GOARCH=${TARGET_GOARCH}
    export CGO_ENABLED="1"
    export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
    export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
    export GO111MODULE="on"
    export GOPATH="${WORKDIR}/build"
    export GIT_TERMINAL_PROMPT=1

    ${GO} install github.com/wailsapp/wails/v2/cmd/wails@latest

    /usr/bin/sync
    sleep 0.5

    ${WORKDIR}/build/bin/linux_arm/wails build .

}

do_install() {

    cd ${WORKDIR}/go-wails-demo-1.0.0/src/import/build/bin

    mkdir -p ${D}${bindir}
    install -m 0755 ./react-wails-demo ${D}${bindir}

    cd ${OLDPWD}

}
Salin selepas log masuk

Atas ialah kandungan terperinci Yocto tidak boleh kompil silang aplikasi GoLang Wails. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan