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