【问题标题】:How to access the global variable defined in compiled dynamic library from c++如何从c ++访问编译动态库中定义的全局变量
【发布时间】:2019-07-26 12:33:15
【问题描述】:

我是编程新手,我尝试使用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】:

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

    extern int acc;
    

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

    【讨论】:

      猜你喜欢
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2010-09-22
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      相关资源
      最近更新 更多