Cython:教程找不到从未引用的外部符号

时间:2011-12-20 00:52:07

标签: python c cython

所以我对计算机上的C语言编程完全不熟悉(我曾经在大学编写代码,但就是这样)所以当我试图学习Cython时,我很有希望我不必真正学习任何C.也许我太有希望了?

无论如何,我正在做教程here并遇到生成的C代码的问题。也就是说,它给出了以下错误:

___pyx_pf_5queue_5Queue___dealloc__
queue.obj : error LNK2019: unresolved external symbol _queue_new referenced in function ___pyx_pf_5queue_5Queue___cinit__
\\Vs1\fs2\Operations\Software\VixarFiles_Dev\Playground\cython\tutorial and calgorithms src\queue.pyd : fatal error LNK1120: 2 unresolved externals

我不知道它们在这些名称前面得到“_”的位置,它必须在它创建C代码时将它们写在某处(它在我的代码中无处可去)。任何帮助或提示将不胜感激。

问题的可能原因: - 好的,我没有完全按照教程完成。我没有构建或安装库,我只是将源代码放入与我的python文件相同的文件夹中(并以不同方式命名它们以确保它不会覆盖* .c文件)。从我在C ++类中所做的,这应该没问题。有什么理由可能不是吗?如果是这样,我不知道如何正常构建C文件。

我想知道是否有人知道我做错了什么或者我可能会采取什么样的好步骤来找出解决方法。谢谢!

1 个答案:

答案 0 :(得分:1)

在我看来,问题不在于将C语言理解为语言,而是与在路径中获取正确的库有关。当queue.obj抛出“未解析的外部引用”错误时,通常意味着C代码(cython生成)从库中调用某些函数,但是您的构建系统无法找到该库。对不起,但我也是cython的新手,所以我不能发出_queue_new函数的预期路径。