gpt4 book ai didi

python - C++ - 为现有库创建 Pythonwrapper

转载 作者:行者123 更新时间:2023-11-30 05:38:52 24 4
gpt4 key购买 nike

我需要为现有的 C++ 模块编写一个 python 包装器。首先,我用这个基本示例测试了程序(现在实际上工作正常):C++ - Python Binding with ctypes - Return multiple values in function

现在我尝试更改设置:我想使用现有的库而不是我的单个 cpp 文件。我试过这个:

g++ -c -I. -fPIC projectionWrapper.cpp -o projectionWrapper.o
g++ -shared -Wl,-soname,libproj.so
-L./build/liborig_interface.a,./build/liborig_base.a
-o libproj.so projectionWrapper.o

我想使用 -L 命令链接给定库中的两个 .a 文件。我没有收到任何错误,但是当我尝试通过 ipython 导入模块时,我得到了这个:

import myprojection    # I load libproj.so in this python file
OSError: ./libproj.so: undefined symbol: _Z29calibration_loadPKcjbP14camera_typetS2_

原来的框架中有一个函数“calibration_load”,还有一个“camera_type”。但我不知道两者之间的神秘事物从何而来。

对于我含糊的解释,我深表歉意,我试图尽可能地解释它,但 C++ 包装器不是我觉得“在家”的主题之一。

最佳答案

问题是您没有链接到您在 C++ 代码中使用的外部库;添加 -l<library>给你的第二个g++打电话。

关于python - C++ - 为现有库创建 Pythonwrapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32568168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com