如何从c ++访问已编译动态库中定义的全局变量

问题描述 投票:0回答:1

我是编程新手,我尝试使用python访问在c ++中编译的编译动态库中定义的全局变量。

int acc;
void Cassie2d::Step(ControllerTorque* action)
{
  dyn_model_.setState(mj_data_->qpos, mj_data_->qvel);
  dyn_state_.UpdateDynamicState(&dyn_model_);

  mju_copy(mj_data_->ctrl, action->torques, nU);
  mj_step(mj_model_, mj_data_);
  acc = mj_data_->qacc;
  Render();
}

上面的代码是c ++代码,我定义了一个全局变量(int acc)来访问mj数据qacc,一旦我编译了整个c ++代码并形成了一个.so库,我尝试在我的python代码中使用变量acc, ,acc不存在,有人能告诉我问题是什么?

或者有没有什么好的方法来定义python代码可以访问库并找到全局变量的全局变量?

python c++ dll global-variables
1个回答
0
投票

通常,当您想要在C / C ++项目中的各种文件中共享全局变量时,可以在声明中添加关键字extern,以便将变量的可见性扩展到您正在开发的整个程序。

extern int acc;

关于从Python访问C ++库及其变量的问题,也许这个链接可能对Calling C/C++ from Python?有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.