Я только что получил эту ошибку, когда я попытался создать общую библиотеку в моем убунте 14.04 64 битной системы:Ядра сбрасывали при создании разделяемой библиотеки
g++ -Wall -g -Iinclude -c /home/pure/Schreibtisch/TestDLL/src/test.cpp -o obj/Debug/src/test.o g++ -shared obj/Debug/src/test.o -o bin/Debug/TestDLL.so collect2: error: ld terminated with signal 6 [Abgebrochen], core dumped /usr/bin/ld: ld: wcsrtombs.c:99: __wcsrtombs: Zusicherung »data.__outbuf[-1] == '\0'« nicht erfüllt.
Я также попытался сделать простую разделяемую библиотеку из простых класс с пустым конструктором и пустой деструктор, пришла такая же ошибка.
Может ли кто-нибудь помочь мне, как это исправить? Если вам нужна дополнительная информация, я могу сказать им.
чистый @ чисто QOSMIO-X500: ~ $, что г ++
/usr/bin/g++
чистый @ чистокровные QOSMIO-X500: ~ $ г ++ --version
g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
И это:
LC_ALL=C g++ -shared /home/pure/Schreibtisch/TestDLL/obj/Debug/src/test.o -o /home/pure/Schreibtisch/TestDLL/libTestDLL.so
возвращается сейчас:
/usr/bin/ld: /home/pure/Schreibtisch/TestDLL/obj/Debug/src/test.o: relocation R_X86_64_32S against `_ZTV4test' can not be used when making a shared object; recompile with -fPIC /home/pure/Schreibtisch/TestDLL/obj/Debug/src/test.o: error adding symbols: Bad value collect2: error: ld returned 1 exit status
Анализ основного файла с помощью 'gdb'. – 0x499602D2
Попробуйте создать тот же исходный код в английской системе. –
Да, пожалуйста, сделайте что-то вроде экспорта LC_ALL = C (или аналогичного для вашей оболочки) перед запуском процесса компиляции. –