核心转储创build共享库

当我尝试在我的ubuntu 14.04 64位系统中创build一个共享库时,发生了这个错误:

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:〜$其中g ++

的/ usr /斌/克++

pure @ pure-QOSMIO-X500:〜$ g ++ –version

g ++(Ubuntu 4.8.2-19ubuntu1)4.8.2版权所有(C)2013自由软件基金会,这是自由软件; 请参阅复制条件的来源。 没有保修; 甚至不适用于适销性或针对特定用途的适用性。

和这个:

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:重新定位R_X86_64_32S针对`_ZTV4test'在制作共享对象时无法使用; 用-fPIC /home/pure/Schreibtisch/TestDLL/obj/Debug/src/test.o重新编译:添加符号时出错:错误值collect2:错误:ld返回1退出状态

/ usr / bin / ld:/home/pure/Schreibtisch/TestDLL/obj/Debug/src/test.o:重新定位R_X86_64_32S针对`_ZTV4test'在制作共享对象时无法使用; 用-fPIC /home/pure/Schreibtisch/TestDLL/obj/Debug/src/test.o 重新编译 :添加符号时出错:错误值collect2:错误:ld返回1退出状态

我不知道为什么你的本地语言环境(德语)崩溃,并使用默认语言环境有用的错误消息。 然而,现在链接器本身告诉你什么是错的:你没有用-fPIC编译你的目标代码。

PIC代表与位置无关的代码,并且是共享库所必需的,因为它们在存储器中的位置是事先不知道的。 例如,使用-fPIC生成的代码使用相对而不是绝对地址进行跳转。