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

时间:2019-03-05 05:38:22

标签: python c++ dll global-variables

我是编程新手,我尝试使用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代码可以访问该库并找到全局变量?

1 个答案:

答案 0 :(得分:0)

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

extern int acc;

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