C++ unix中的分段错误,但在Windows中工作正常
_var是classa的静态对象。加载dll时,控件进入静态对象初始化。此时,控件进入构造函数,在构造函数内执行代码后,由于分段错误而中断。 这在windows中运行良好,只有在unix中我才遇到这个问题C++ unix中的分段错误,但在Windows中工作正常,c++,unix,static,C++,Unix,Static,_var是classa的静态对象。加载dll时,控件进入静态对象初始化。此时,控件进入构造函数,在构造函数内执行代码后,由于分段错误而中断。 这在windows中运行良好,只有在unix中我才遇到这个问题 使用dbx debugger中的print命令检查_var的值时,它会进入无限循环。如果您不熟悉,请阅读常见问题解答:如果您提供一个示例,我们将更容易提供帮助。请为相关类发布更完整的代码。但我的直觉是,您在某种程度上依赖于多个静态变量的初始化顺序,这是无法做到的。如果它们是独立变量,编译器可以
使用dbx debugger中的print命令检查_var的值时,它会进入无限循环。如果您不熟悉,请阅读常见问题解答:如果您提供一个示例,我们将更容易提供帮助。请为相关类发布更完整的代码。但我的直觉是,您在某种程度上依赖于多个静态变量的初始化顺序,这是无法做到的。如果它们是独立变量,编译器可以自由地以任何顺序运行它们的构造函数。一种可能的解决方法是强制及时初始化静态变量,例如替换classa classa::u var;使用classa&getVar{static classa x;return x;}以便必须调用函数才能初始化值,在那之前它不会被初始化。你好Kevin。谢谢你的回复。对象是私有成员,构造函数中没有代码。我不明白我将如何使用getVar方法。它将是一个静态方法吗?
classa classa::_var
classa::classa() {
}