我的程序有一个非常有趣的问题(在ubuntu 12.04上用gcc 4.6.4编译)。当我动态构建可执行文件时,程序运行完美。但是当我静态地构建它(带有-static标志)时,它会给我一个'核心转储'退出后(例如,在'返回0'在主要之后)。不幸的是,整个程序太大了,不能在这里摆出姿势。有什么可能性?
答案 0 :(得分:2)
除了johnnycrash answer中的两种可能性:
调用__attribute__ ((destructor))
的一些函数,并调用dump core。
内存堆已损坏(请查看valgrind)
在atexit(3)注册的某些功能正在崩溃
某些图书馆/功能被“两次”链接
答案 1 :(得分:1)
1)你有一个线程仍在执行。 2)你正在覆盖内存,你很幸运动态库。