clang undefined reference to symbol '_ZNSt12length_errorD1Ev'
时间: 2024-08-15 07:10:14 浏览: 106
"clang: undefined reference to symbol '_ZNSt12length_errorD1Ev'" 这是一个链接器错误,通常出现在C++程序中当你尝试链接一些库函数,比如`std::length_error`(标准库中的长度异常),但是在编译过程中没有包含相应的头文件,也没有提供该异常构造函数的实现链接。`_ZNSt12length_errorD1Ev`是对`length_error` 类析构函数`~length_error()`的内部表示。
解决这个问题的一般步骤包括:
1. 确保已经包含了正确的头文件,如`#include <stdexcept>`,因为`length_error`是`std::runtime_error`的一个特殊化版本,通常会在`<stdexcept>`中定义。
2. 如果你在自定义代码里创建了这个异常,并且没有提供析构函数的实现,需要为它提供一个或者让其继承自`std::exception`并重载默认的析构函数。
3. 检查是否所有的依赖库都被正确地链接到你的项目中,特别是那些包含所需异常定义的库。
相关问题
undefined symbol: _ZNSt12experimental10filesystem2v17__cxx1118directory_iteratorppEv这个报错啥意思
这个错误通常是因为您的代码中使用了C++17标准的文件系统库,但您的编译器不支持该标准或者编译器的版本过低。解决这个问题的方法有两种:
1.升级编译器到支持C++17标准的版本,比如gcc 8.0以上、clang 5.0以上、Visual Studio 2017以上等。
2.改用C++11标准的文件系统库。您可以使用boost::filesystem或者Qt的QDir等第三方库来代替C++17标准的文件系统库。
阅读全文