Cython:教程无法找到未被引用的外部符号
我对在电脑上用C语言编程完全是个新手(我在大学时编译过代码,但就那一次),所以当我尝试学习Cython时,我希望自己不需要真正去学C语言。也许我想得太美好了?
无论如何,我正在这里的教程学习,但在生成的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 个回答
2
看起来你的问题不是出在对C语言的理解上,而是和你路径中缺少正确的库有关。当queue.obj出现“未解决的外部引用”错误时,通常意味着C代码(是cython生成的)调用了某个库中的函数,但你的构建系统找不到这个库。抱歉,我对cython也很陌生,所以我也说不出_queue_new函数的正确路径是什么。