[C++]全局對象引發core

當多個動態庫中包含相同名字的全局對象時,會在exit的鉤子屢次註冊,當程序退出時對象會析構屢次,形成崩潰。code

簡單的例子:  
aaa.cpp  :對象

#include <string>
std::string msg("fdsafasfsa");

ccc.cpp:string

int main(int argc,char* argv[]){
    return 0;
}


而後
g++ -g -shared -o libaaa.so aaa.cpp
g++ -g -shared -o libbbb.so aaa.cpp
g++ -g -o ccc ccc.cpp -laaa -lbbb -L.
生成的ccc程序,執行就會core。it

相關文章
相關標籤/搜索