提问人:Vivek Mangal 提问时间:2/10/2023 最后编辑:Vivek Mangal 更新时间:2/10/2023 访问量:30
可执行文件中静态成员(在共享库中定义)的单独副本
Separate copy of static member(defined in a shared library) inside executable
问:
我正在我的 Mac 系统上构建一个项目。我有链接到Mac框架()的静态库。我正在与我的可执行文件动态链接。C++
libA.a
B.framework
B.framework
exe
在 中定义的类中定义了一个成员static
libA.a
class MyClass {
static MyType* myVar;
public:
print() {
//prints address of myVar(&myVar) value
}
};
我观察到,在运行时,当我通过代码 in 和 通过代码 in 调用该方法时,两者都打印了不同的值。print()
B.framework
exe
&myVar
它看起来像有一个单独的副本。我所期望和想要实现的是拥有 myVar 的单个副本?有没有办法实现这一目标?exe
myVar
答: 暂无答案
评论
#define DLLEXP __declspec(dllexport)
#define DLLEXP __declspec(dllimport)
DLLEXP
DLLEXP class MyClass {...