为什么我在使用c+时会在cython中遇到名称混乱的问题+;头球? 我有一个代码库,我用一些手写的C++代码。C++代码包括以下行 #include "gzstream.h"
该标题中的代码似乎被破坏了,因为当我尝试运行代码时,会出现如下错误:为什么我在使用c+时会在cython中遇到名称混乱的问题+;头球? 我有一个代码库,我用一些手写的C++代码。C++代码包括以下行 #include "gzstream.h",c++,cython,name-mangling,C++,Cython,Name Mangling,该标题中的代码似乎被破坏了,因为当我尝试运行代码时,会出现如下错误: ImportError: dlopen(/Users/endrebakkenstovner/anaconda3/lib/python3.8/site-packages/epic2-0.0.48-py3.8-macosx-10.9-x86_64.egg/epic2/src/cpp_read_files.cpython-38-darwin.so, 2): Symbol not found: __ZN12gzstreambaseD0
ImportError: dlopen(/Users/endrebakkenstovner/anaconda3/lib/python3.8/site-packages/epic2-0.0.48-py3.8-macosx-10.9-x86_64.egg/epic2/src/cpp_read_files.cpython-38-darwin.so, 2): Symbol not found: __ZN12gzstreambaseD0Ev
Referenced from: /Users/endrebakkenstovner/anaconda3/lib/python3.8/site-packages/epic2-0.0.48-py3.8-macosx-10.9-x86_64.egg/epic2/src/cpp_read_files.cpython-38-darwin.so
Expected in: flat namespace
(未找到符号:\uuu ZN12*gzstreambaseD0Ev)
有没有办法告诉Cython关于头文件的情况,以避免名称混乱
这是我需要gzstream.h的行:
有没有办法让Cython在pxd文件或其他文件中意识到这一点?相关:有人假设您已链接到gzstream代码?gzstream.h是包含所有必需代码的头文件。我猜不需要链接?不,
gzstream.h
没有实现~gzstreambase()
,这是错误中的符号您完全正确,我需要找出如何在Cython.Related中链接该文件:有人假设您已经链接到了gzstream代码?gzstream.h是包含所有必需代码的头文件。我猜不需要链接?不,gzstream.h
没有~gzstreambase()
的实现,这是错误中的符号。您完全正确,我需要了解如何在Cython中链接该文件。