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

How to access the global variable defined in compiled dynamic library from c++

本文关键字:动态 全局变量 定义 编译 何访问 访问      更新时间:2023-10-16

我是编程的新手,我尝试使用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 Data QACC,一旦我编译了整个C 代码并形成一个.so库,我就尝试在Python中使用变量ACC但是,代码不存在ACC,有人可以告诉我问题是吗?

或有什么好方法可以定义全局变量,其中Python代码可以访问库并找到全局变量?

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

extern int acc;

对于从Python访问C 库及其变量的涉及的内容,也许此链接可能有助于从Python致电C/C ?