错误:“ _ GLIBCXX_TXN_SAFE_DYN”未命名类型

时间:2019-07-06 02:58:54

标签: c++ exception c++14 clion libstdc++

我正在尝试编译在另一台运行CentOS的计算机上编写的c ++代码。我正在尝试在Ubuntu 16.04中进行编译,尽管具有相同版本的gcc(4.8)和clion(2018.3),代码仍无法正确编译。错误之一是:

error: '_GLIBCXX_TXN_SAFE_DYN' does not name a type
  what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT {

我在互联网上搜索了此错误,或者试图弄清_GLIBCXX_TXN_SAFE_DYN是什么意思,但找不到任何东西。该代码仍然可以在CentOS计算机上正确编译。我可能缺少某种依赖性或某些依赖性,但无法弄清。

class TestException : public std::exception {
public:
    /*!
     * @brief Default constructor to create a new instance of @c TestException
     *
     * @param what      A description of what might have gone wrong in the test
     * @param file      The file name where the error occurred (i.e. @c __FILE__ )
     * @param function  The function name in which the error occurred (i.e. @c __FUNCTION__ )
     * @param line      The line number where the error occurred. (i.e. @c__LINE__ )
     */
    TestException(const std::string what, const std::string file, const std::string function, const int line) {
        std::stringstream s;
        s << "TestException in file \"" << file << "\" in function \"" << function << "\" at line " << line
                << ": " << what;
        _msg = s.str();

    }

    //! @brief Return the error message as a string for use in error messages or tracing
    virtual const char*
    what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT {
        return _msg.c_str();
    }
private:
    std::string _msg;  //!< @brief The formatted message string.
};

1 个答案:

答案 0 :(得分:0)

使用C ++ 7.4.0编译器或更高版本。使用GNU 5.5.0的客户对我有相同的经验。 至少这对我们有用。

-C编译器标识为GNU 7.4.0 -CXX编译器标识为GNU 7.4.0