首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCC 4.1 / HP-UX 11.23上的静态/全局构造函数

GCC 4.1 / HP-UX 11.23上的静态/全局构造函数
EN

Stack Overflow用户
提问于 2009-09-28 22:00:12
回答 2查看 741关注 0票数 2

快速总结:在gcc 4.1、aCC、VisualAge和MSVC下的许多平台上运行良好的现有代码。我正在努力使这个达到扼杀惠普-UX目前的水平。

输出由多个(8-10)共享库组成。

现在一切都编译得很好,但是当尝试运行任何测试应用程序时,它们都会立即在某个全局构造函数中分割错误。事实上,gdb甚至不能给我提供关于这个实际全局对象在哪里的信息。si_code是对象的SEGV_ACCERR无效权限,“this”指针始终为0。

初始化如何调用为null的对象的ctor?这是gcc的全球初始化概念和惠普的概念(使用惠普的ld)之间的冲突吗?

从诊断的角度来看,你会去哪里?可悲的是,我不能把这个问题归结为任何能再现问题的测试用例。

EN

回答 2

Stack Overflow用户

发布于 2009-09-28 22:54:17

首先,我将对可执行文件、对象文件和共享库运行objdump。查找可疑的内容,如虚拟地址为0(即NULL)的数据段。

对于共享库,加载程序的工作是执行运行时链接,也许HP-UX加载程序并没有重新定位它应该有的位置。

另外,请查看GNU ld信息页。在构造函数选项下列出了一些可能有用的信息。不同的对象格式操作不同。

票数 1
EN

Stack Overflow用户

发布于 2009-09-29 02:53:08

您所讨论的共享库的编译和链接命令行是什么?确保使用"g++ -fPIC -c ..."编译对象,并将它们与"g++ -fPIC -shared ..."链接,而不是直接与"ld -b ..."链接。g++可以链接到附加的运行时支持代码中,这在HP-UX上可能是必需的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1489597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档