gpt4 book ai didi

c++ - Solaris 共享库和全局变量

转载 作者:行者123 更新时间:2023-11-28 08:22:05 25 4
gpt4 key购买 nike

我在 Solaris 上的共享库中遇到全局变量问题。考虑以下示例:

class Foo
{
public:
Foo() { Init(); }

private:
void Init() { // do something }
};

我在共享库中有一些代码:

Foo g_Foo;

我注意到在 Solaris 上从未调用 Foo 构造函数,而相同的代码在 Linux 上运行。

我正在使用 gcc 3.4.3 和 Sun 链接器。

最佳答案

您是否正在使用 -G 标志创建共享对象?例如CC -G -o mylib.so myfile.cpp

如果不指定-G,编译器可能无法正确初始化全局变量。请参阅编译器文档 here .

请注意,文档还说您不能使用 ld,但需要使用 CC 进行链接。

关于c++ - Solaris 共享库和全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5462118/

25 4 0
文章推荐: c++ - 内存泄漏练习使用
文章推荐: c++ - IDISPATCH::Invoke 调用方法失败,错误 0x80020005 类型不匹配
文章推荐: javascript - 我想知道我的指令模板中
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com