创建共享库时核心转储
Core Dumped while creating shared library
当我试图在我的ubuntu 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] == ' '« nicht erfüllt.
我还试图从一个简单的类中创建一个简单共享库,该类有一个空构造函数和一个空析构函数,同样的错误也出现了。
有人能帮我修吗?如果需要更多的信息,我可以告诉他们。
pure@pure-QOSMIO-X500:~$哪个g++
/usr/bin/g++
pure@pure-QOSMIO-X500:~$g++--版本
g++(Ubuntu 4.8.2-19ubuntu1)4.8.2版权所有(C)2013自由软件基金会,股份有限公司。这是免费软件;有关复制条件,请参见来源。没有担保甚至不考虑适销性或特定用途的适用性。
这个:
LC_ALL=C g++-共享/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:在创建共享对象时,不能使用针对"_ZTV4test"的重新定位R_X86_64_32S;使用-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:当制作共享对象使用-fPIC重新编译/home/pure/Schreibtisch/TestDLL/obj/Debug/src/test.o:添加错误symbol:错误值collect2:错误:ld返回1退出状态
我不知道为什么您的本地语言环境(德语)会崩溃,并且使用默认语言环境会出现有用的错误消息。然而,现在链接器本身告诉您哪里出了问题:您没有使用-fPIC
编译对象代码。
PIC代表位置无关代码,对于共享库是必要的,因为它们在内存中的位置事先未知。例如,使用-fPIC
生成的代码使用相对地址而不是绝对地址进行跳转。
- 如何找出GDB的SIGTRAP核心转储的根本原因
- C++映射分割错误(核心转储)
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 浮点异常(核心转储)#694457
- 分段错误(核心转储)但无法弄清楚
- 链接到libkcapi时没有核心转储
- 分段错误(核心转储) - 使用 SavedModel 的 Tensorflow C++ API 进行推断
- 在基数排序中,我得到 munmap_chunk():无效指针和中止(核心转储).为什么?
- C++指针无法在函数外部传递值和分段错误(核心转储)错误
- 合并排序:分段错误核心转储
- C++:分段错误(核心转储)
- 从 pybind11 构建导入模块时出现"分段错误(核心转储)"
- 如何使用 lldb 在曼扎罗中调试 lz4 文件格式的核心转储?
- qt C++命令行代码中的分段错误(核心转储)
- 从文件中读取的数据,但发生核心转储错误
- googletest:测试基类具有纯虚拟方法的派生类时的核心转储
- C++ atof - 分段错误(核心转储)
- Linux C 只禁止我的程序使用核心转储
- 为什么我的代码包含错误分段错误(核心转储)?