gpt4 book ai didi

c++ - GCC 链接错误 "__wcsrtombs: Zusicherung »data.__outbuf[-1] == '\0'« nicht erfüllt"

转载 作者:太空狗 更新时间:2023-10-29 12:13:00 24 4
gpt4 key购买 nike

基于 this question我收到错误消息...

collect2: fatal error: ld terminated with signal 6 [Abgebrochen]
compilation terminated.
/usr/bin/ld: ld: wcsrtombs.c:99: __wcsrtombs: Zusicherung »data.__outbuf[-1] == '\0'« nicht erfüllt.

...尝试链接共享库但设置 LC_ALL=C 无法解决我的问题!

我在德国 Linux Mint 17.3 (Cinnamon)。我的项目是使用 CMake 2.8.4( native 存储库)构建的。编译器是 g++ 5.3.1(Ubuntu xenial 存储库)。

所有源的编译命令如下所示:

/usr/bin/c++   -D_USE_MATH_DEFINES -Dfluag_EXPORTS -g -fPIC -I/home/youka/Schreibtisch/Projekte/FLuaG/build/src -I/usr/include/luajit-2.0 -I/usr/local/include    -Wall -Wextra -pedantic -Wredundant-decls -Wunreachable-code -Wmissing-include-dirs -Wswitch-enum -Wno-missing-field-initializers -std=c++11 -mmmx -o CMakeFiles/fluag.dir/main/FLuaG.cpp.o -c /home/youka/Schreibtisch/Projekte/FLuaG/src/main/FLuaG.cpp

导致错误的链接命令:

/usr/bin/c++  -fPIC -g   -shared -Wl,-soname,libfluag.so -o libfluag.so CMakeFiles/fluag.dir/lualibs/utf8.cpp.o CMakeFiles/fluag.dir/lualibs/mathx.cpp.o CMakeFiles/fluag.dir/lualibs/regex.cpp.o CMakeFiles/fluag.dir/lualibs/png.cpp.o CMakeFiles/fluag.dir/lualibs/geometry.cpp.o CMakeFiles/fluag.dir/lualibs/tablex.cpp.o CMakeFiles/fluag.dir/lualibs/filesystem.cpp.o CMakeFiles/fluag.dir/lualibs/tgl.cpp.o CMakeFiles/fluag.dir/lualibs/font.cpp.o CMakeFiles/fluag.dir/interfaces/vapoursynth.cpp.o CMakeFiles/fluag.dir/interfaces/public.cpp.o CMakeFiles/fluag.dir/main/FLuaG_image.cpp.o CMakeFiles/fluag.dir/main/FLuaG.cpp.o -Wl,-Bstatic -lluajit-5.1 -Wl,-Bdynamic -lGLEW /usr/local/lib/libglfw3.a -lGL -lpng -lz

在 Windows Vista 上使用 MinGW64 编译这个项目是可行的。发布或调试版本,有或没有 SIMD 等都没有区别。

错误消息告诉我,在文件 wcsrtombs.c(链接的 libgcc)中,第 99 行,内存比较 data.__outbuf[-1] == '\0' 不确定...这让我很困惑。

最佳答案

将系统语言设置为英文后,错误提示突然明白了:

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libluajit-5.1.a(ljamalg.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libluajit-5.1.a: error adding symbols: Bad value

问题是 -Wl,-Bstatic -lluajit-5.1。我链接到 .a 文件,CMake 认为它是一个静态库。更改为 .so 解决了问题。

关于c++ - GCC 链接错误 "__wcsrtombs: Zusicherung »data.__outbuf[-1] == '\0'« nicht erfüllt",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35380213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com