首页 > 解决方案 > Yocto dunfell capnproto receipe,得到编译器错误

问题描述

我正在我的 yocto dunfell 上构建 capnproto。capnproto_0.7.0.bb:http://layers.openembedded.org/layerindex/recipe/122812/ _

我还创建了 capnproto_0.7.0.bbappend 文件。

EXTRA_OECMAKE += "\
    -DBUILD_SHARED_LIBS=TRUE \
"

inherit cmake

INSANE_SKIP_${PN} += "dev-deps"
INSANE_SKIP_${PN} += "dev-elf"

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

但是当我编译这个时,我遇到了错误

[70/95] : && build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/bin/aarch64-oe-linux/aarch64-oe-linux-g++ -fPIC -march=armv8-a+crc -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security  --sysroot=build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot    -O2    -g -Wa,--noexecstack -fexpensive-optimizations   -frename-registers -ftree-vectorize   -finline-functions -finline-limit=64   -Wno-error=maybe-uninitialized -Wno-error=unused-result    -fvisibility-inlines-hidden  -march=armv8-a+crc -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security  --sysroot=build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now,-z,noexecstack -shared -Wl,-soname,libkj-gzip.so.0.7.0 -o src/kj/libkj-gzip.so.0.7.0 src/kj/CMakeFiles/kj-gzip.dir/compat/gzip.c++.o  -Wl,-rpath,"\$ORIGIN:build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/lib:"  src/kj/libkj-async.so.0.7.0  src/kj/libkj.so.0.7.0  build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/lib/libz.so  -lpthread && :
FAILED: src/kj/libkj-gzip.so.0.7.0 
: && build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/bin/aarch64-oe-linux/aarch64-oe-linux-g++ -fPIC -march=armv8-a+crc -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security  --sysroot=build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot    -O2    -g -Wa,--noexecstack -fexpensive-optimizations   -frename-registers -ftree-vectorize   -finline-functions -finline-limit=64   -Wno-error=maybe-uninitialized -Wno-error=unused-result    -fvisibility-inlines-hidden  -march=armv8-a+crc -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security  --sysroot=build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now,-z,noexecstack -shared -Wl,-soname,libkj-gzip.so.0.7.0 -o src/kj/libkj-gzip.so.0.7.0 src/kj/CMakeFiles/kj-gzip.dir/compat/gzip.c++.o  -Wl,-rpath,"\$ORIGIN:build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/lib:"  src/kj/libkj-async.so.0.7.0  src/kj/libkj.so.0.7.0  build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/lib/libz.so  -lpthread && :
build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/bin/aarch64-oe-linux/../../libexec/aarch64-oe-linux/gcc/aarch64-oe-linux/9.3.0/ld: build/tmp-glibc/work/aarch64-oe-linux/capnproto/0.7.0-r0/recipe-sysroot-native/usr/lib/libz.so: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status**

如果我EXTRA_OEMAKE "-DBUILD_SHARED_LIBS=TRUE"从我的 bbappend 文件中删除,那么我不会发现任何错误。

谢谢

标签: linuxyoctorecipecapnprotolibz

解决方案


推荐阅读