c++ 链接器错误:ELF区段名称超出范围

ryevplcw  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(173)

这个“ELF节名称超出范围”错误是什么意思?
我试图构建一个二进制文件,但不断得到这个链接器错误。

root@ubuntu:/home/ubuntu/e2c/e2c_core# make all

arm-oe-linux-gnueabi-g++ --sysroot=/home/ubuntu/sysroots/aarch64-oe-linux/ -O0 -g -Wall -fmessage-length=0 -MD -MP -DLINUX=1 -DUSE_CONFIG_FILE=1 --sysroot=/home/ubuntu/sysroots/aarch64-oe-linux/ -fstack-protector -fPIE -z relro -z now -D_FORTIFY_SOURCE=2  -std=c++0x -O3 -Wall -fmessage-length=0 -MD -MP -DLINUX=1 -DUSE_CONFIG_FILE=1 -D__MOCANA_DISABLE_INLINE_ASSEMBLY__ -I. -Iapi/ -Icfg/ -Iplatform/ -Icore/ -Icore/Diagnostics/ -Icore/GreyhoundThread/ -Icore/LIB_Mocana/ -Icore/LIB_ProtonE/ -Icore/Mocana/ -Icore/PKI/ -Icore/Telemetry/ -Icore/UTCtimeSync/ -Icore/jsmn/ -I../e2c_api/ -Ilib/atecclib/ -Ilib/atecclib/lib/ -Ilib/config/ -I../boost/ -I/home/ubuntu/Downloads/libwebsockets/build/include/ -Icore/LIB_Mocana/src/ocsp/ -Iunity/ -include core/E2C_global_include.h -o e2c_core main.o  api/api_diy.o api/api_rci.o api/api_sta.o api/TelemetryInterface.o cfg/CloudVariantSetup.o cfg/SwVersion.o core/e2c_core_config.o core/E2C_internal_main.o core/Diagnostics/LegacyDBdiag.o core/GreyhoundThread/FirmwareDownload.o core/GreyhoundThread/GreyhoundThread.o core/GreyhoundThread/Provisioning.o core/GreyhoundThread/UTCtimeSync.o core/GreyhoundThread/WS_Provisioning.o core/jsmn/jsmn.o core/LIB_Mocana/src/asn1/ASN1TreeWalker.o core/LIB_Mocana/src/asn1/derencoder.o core/LIB_Mocana/src/asn1/oiddefs.o core/LIB_Mocana/src/asn1/oidutils.o core/LIB_Mocana/src/asn1/parseasn1.o core/LIB_Mocana/src/asn1/parsecert.o core/LIB_Mocana/src/common/absstream.o core/LIB_Mocana/src/common/altivec.o core/LIB_Mocana/src/common/circ_buf.o core/LIB_Mocana/src/common/circq.o core/LIB_Mocana/src/common/datetime.o core/LIB_Mocana/src/common/debug_console.o core/LIB_Mocana/src/common/dynarray.o core/LIB_Mocana/src/common/hash_table.o core/LIB_Mocana/src/common/hash_value.o core/LIB_Mocana/src/common/int128.o core/LIB_Mocana/src/common/int64.o core/LIB_Mocana/src/common/jacobi.o core/LIB_Mocana/src/common/lucas.o core/LIB_Mocana/src/common/math_arm.o core/LIB_Mocana/src/common/mbitmap.o core/LIB_Mocana/src/common/memfile.o core/LIB_Mocana/src/common/memory_debug.o core/LIB_Mocana/src/common/mem_part.o core/LIB_Mocana/src/common/mem_pool.o core/LIB_Mocana/src/common/merrors.o core/LIB_Mocana/src/common/mocana.o core/LIB_Mocana/src/common/moc_net.o core/LIB_Mocana/src/common/moc_stream.o core/LIB_Mocana/src/common/mprintf.o core/LIB_Mocana/src/common/mrtos.o core/LIB_Mocana/src/common/mstdlib.o core/LIB_Mocana/src/common/mtcp.o core/LIB_Mocana/src/common/prime.o core/LIB_Mocana/src/common/random.o core/LIB_Mocana/src/common/redblack.o core/LIB_Mocana/src/common/rng_seed.o core/LIB_Mocana/src/common/sizedbuffer.o core/LIB_Mocana/src/common/timer.o core/LIB_Mocana/src/common/tree.o core/LIB_Mocana/src/common/uri.o core/LIB_Mocana/src/common/utils.o core/LIB_Mocana/src/common/vlong.o core/LIB_Mocana/src/crypto/aesalgo.o core/LIB_Mocana/src/crypto/aesalgoNi.o core/LIB_Mocana/src/crypto/aes_ccm.o core/LIB_Mocana/src/crypto/aes_cmac.o core/LIB_Mocana/src/crypto/aes.o core/LIB_Mocana/src/crypto/aes_ctr.o core/LIB_Mocana/src/crypto/aes_eax.o core/LIB_Mocana/src/crypto/aes_ecb.o core/LIB_Mocana/src/crypto/aes_keywrap.o core/LIB_Mocana/src/crypto/aes_xcbc_mac_96.o core/LIB_Mocana/src/crypto/aes_xts.o core/LIB_Mocana/src/crypto/ansix9_63_kdf.o core/LIB_Mocana/src/crypto/arc2.o core/LIB_Mocana/src/crypto/arc4.o core/LIB_Mocana/src/crypto/asn1cert.o core/LIB_Mocana/src/crypto/base64m.o core/LIB_Mocana/src/crypto/blowfish.o core/LIB_Mocana/src/crypto/ca_mgmt.o core/LIB_Mocana/src/crypto/cert_store.o core/LIB_Mocana/src/crypto/cms_aux.o core/LIB_Mocana/src/crypto/crypto.o core/LIB_Mocana/src/crypto/des.o core/LIB_Mocana/src/crypto/dh.o core/LIB_Mocana/src/crypto/dsa2.o core/LIB_Mocana/src/crypto/dsa.o core/LIB_Mocana/src/crypto/fips.o core/LIB_Mocana/src/crypto/gcm.o core/LIB_Mocana/src/crypto/hmac.o core/LIB_Mocana/src/crypto/key_utils.o core/LIB_Mocana/src/crypto/md2.o core/LIB_Mocana/src/crypto/md45.o core/LIB_Mocana/src/crypto/md4.o core/LIB_Mocana/src/crypto/md5.o core/LIB_Mocana/src/crypto/nil.o core/LIB_Mocana/src/crypto/nist_rng.o core/LIB_Mocana/src/crypto/pem_key.o core/LIB_Mocana/src/crypto/pkcs10.o core/LIB_Mocana/src/crypto/pkcs12.o core/LIB_Mocana/src/crypto/pkcs1.o core/LIB_Mocana/src/crypto/pkcs5.o core/LIB_Mocana/src/crypto/pkcs7.o core/LIB_Mocana/src/crypto/pkcs8.o core/LIB_Mocana/src/crypto/pkcs_common.o core/LIB_Mocana/src/crypto/pkcs.o core/LIB_Mocana/src/crypto/pkcs_key.o core/LIB_Mocana/src/crypto/primeec_atecc.o core/LIB_Mocana/src/crypto/primeec.o core/LIB_Mocana/src/crypto/primefld.o core/LIB_Mocana/src/crypto/pubcrypto.o core/LIB_Mocana/src/crypto/rc2algo.o core/LIB_Mocana/src/crypto/rc4algo.o core/LIB_Mocana/src/crypto/rsa.o core/LIB_Mocana/src/crypto/sec_key.o core/LIB_Mocana/src/crypto/sha1.o core/LIB_Mocana/src/crypto/sha256.o core/LIB_Mocana/src/crypto/sha512.o core/LIB_Mocana/src/crypto/three_des.o core/LIB_Mocana/src/ocsp/client/ocsp_client.o core/LIB_Mocana/src/ocsp/ocsp_context.o core/LIB_Mocana/src/ocsp/ocsp.o core/LIB_Mocana/src/ocsp/ocsp_http.o core/LIB_Mocana/src/ocsp/ocsp_message.o core/LIB_Mocana/src/platform/linux_rtos.o core/LIB_Mocana/src/platform/linux_tcp_async.o core/LIB_Mocana/src/platform/linux_tcp.o core/LIB_Mocana/src/platform/linux_udp.o core/LIB_Mocana/src/ssl/ssl.o core/LIB_Mocana/src/ssl/ssl_ocsp.o core/LIB_Mocana/src/ssl/sslsock.o core/LIB_ProtonE/src/buffer.o core/LIB_ProtonE/src/error.o core/LIB_ProtonE/src/log.o core/LIB_ProtonE/src/parser.o core/LIB_ProtonE/src/pn_platform.o core/LIB_ProtonE/src/scanner.o core/LIB_ProtonE/src/selectable.o core/LIB_ProtonE/src/types.o core/LIB_ProtonE/src/url.o core/LIB_ProtonE/src/util.o core/LIB_ProtonE/src/codec/codec.o core/LIB_ProtonE/src/codec/decoder.o core/LIB_ProtonE/src/codec/encoder.o core/LIB_ProtonE/src/dispatcher/dispatcher.o core/LIB_ProtonE/src/engine/engine.o core/LIB_ProtonE/src/events/event.o core/LIB_ProtonE/src/framing/framing.o core/LIB_ProtonE/src/message/message.o core/LIB_ProtonE/src/messenger/messenger.o core/LIB_ProtonE/src/messenger/store.o core/LIB_ProtonE/src/messenger/subscription.o core/LIB_ProtonE/src/messenger/transform.o core/LIB_ProtonE/src/object/iterator.o core/LIB_ProtonE/src/object/list.o core/LIB_ProtonE/src/object/map.o core/LIB_ProtonE/src/object/object.o core/LIB_ProtonE/src/object/record.o core/LIB_ProtonE/src/object/string.o core/LIB_ProtonE/src/posix/io.o core/LIB_ProtonE/src/posix/selector.o core/LIB_ProtonE/src/sasl/none_sasl.o core/LIB_ProtonE/src/sasl/sasl.o core/LIB_ProtonE/src/ssl/mocanassl_proton.o core/LIB_ProtonE/src/transport/autodetect.o core/LIB_ProtonE/src/transport/transport.o core/Mocana/MocSetup.o core/Mocana/MocTest.o core/Mocana/TLS_http_get.o core/PKI/CertificateStore.o core/PKI/ILVT.o core/PKI/MDKcode.o core/Telemetry/AMQPlayer.o core/Telemetry/GatewayTerminatedMessages.o core/Telemetry/GHbase64.o core/Telemetry/GHsequence.o core/Telemetry/MsgRouting.o core/Telemetry/RegistrationFlag.o core/Telemetry/TelemetryThread.o core/Telemetry/WSlayer.o core/Telemetry/WS_Stats.o core/Telemetry/PELIB/PELIBassert.o core/Telemetry/PELIB/PELIBmemoryMgmt.o core/Telemetry/PELIB/PELIBplatform.o core/UTCtimeSync/UTCtime.o core/UTCtimeSync/UTCtimeSyncJSON.o platform/Daemon.o platform/Linux_api.o platform/Logger.o platform/Platform.o platform/STA_DNScache.o platform/e2c/BL-RO-Store.o platform/e2c/ConfigStore.o platform/e2c/DebugPrint.o platform/e2c/DeviceConfig.o platform/e2c/E2C_FILE.o platform/e2c/MemoryManager.o platform/e2c/PlatformFileSystem.o lib/config/grammar.o lib/config/libconfig.o lib/config/scanctx.o lib/config/scanner.o lib/config/strbuf.o lib/config/libconfigcpp.o  lib/atecclib/libatecc508.a -L../e2c_api/ -L/home/ubuntu/Downloads/libwebsockets/build/lib/  -Wl,--whole-archive -lpthread -ldl -Wl,--no-whole-archive -le2c_api -lrt -lwebsockets -luuid -lcurl
/home/ubuntu/sysroots/x86_64-oesdk-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.3/real-ld: fatal error: /home/ubuntu/sysroots/aarch64-oe-linux/usr/lib/libstdc++.so: ELF section name out of range

这究竟是什么意思呢?

x6492ojm

x6492ojm1#

在我的情况下,我得到ld : error : myfile: file too short,或者有时:

ld: warning: myfile has a section extending past end of file
ld : error : myfile: ELF section name out of range

因为我正在为Nix修补一个包含源代码和二进制blob的文件夹......而且由于要修补的文件数量很大,我使用了一个脚本来同时修补它们(使用findsed -i)。不幸的是,sed也应用于二进制文件,这完全损坏了它们。
我意识到,通过在修补前后打印objdump -a myfile(在第二种情况下,我会得到一个错误)。

相关问题