我是编程新手,我尝试使用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代码可以访问库并找到全局变量的全局变量?
通常,当您想要在C / C ++项目中的各种文件中共享全局变量时,可以在声明中添加关键字extern
,以便将变量的可见性扩展到您正在开发的整个程序。
extern int acc;
关于从Python访问C ++库及其变量的问题,也许这个链接可能对Calling C/C++ from Python?有所帮助