use*_*829 5 c c++ python shared-libraries python-c-extension
我几乎完全用C++编写了一个Python包.这样做的原因是因为我想手动包装现有的C++库,但这与此无关.
这个Python包由许多不同的扩展模块组成,所有这些模块都是在'setup.py'脚本中用distutils编译的.这些扩展模块可以是相互关联的,在这种情况下,我通过将共享库传递给Extension构造函数来链接它们.要清楚,假设我有两个Python C++模块,A和B,其中B使用A中定义的函数.这些通常编译成A.so和B.so. 由于B使用A中定义的函数,因此我像往常一样编译A模块,然后将':A.so'作为库传递给B模块的Extension构造函数中的libraries关键字.(':'让g ++处理这个事实,即库不以通常的'lib'前缀开头.)这适用于链接函数和类.
我的问题如下:我在A中定义了一些全局C++变量.虽然我所描述的内容允许B访问A中的函数,但它实际上似乎创建了A中定义的任何全局数据的COPY.这是一个真正的问题为了我.
在我看来,该问题基本上类似于在共享库中具有全局变量,如此处和其他地方所讨论的.该解决方案以及我在网上找到的其他解决方案似乎无法解决问题.
任何帮助将非常感谢!
编辑:忘记提及,是的,我的全局变量被声明为extern.
| 归档时间: |
|
| 查看次数: |
2173 次 |
| 最近记录: |