Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我在使用c+时会在cython中遇到名称混乱的问题+;头球? 我有一个代码库,我用一些手写的C++代码。C++代码包括以下行 #include "gzstream.h"_C++_Cython_Name Mangling - Fatal编程技术网

为什么我在使用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中链接该文件。