2011-12-20 15 views
2

私はコンピュータでC言語でプログラミングするのは全く新しいです(私はかつて大学でコードをコンパイルしましたが、それです)。私は本当にCを学ぶ必要はありませんでした。多分私はあまりにも有望でしたか?Cython:参照されていない外部のシンボルはチュートリアルで見つけることができません

とにかく、私はチュートリアルhereを実行しており、生成されたCコードに問題が発生しています。すなわち、それは次のエラーを与えている:それはtehの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 

私はそれがそれらの名前の前に「_」を取得している場合、それはどこか自分自身を書いてしなければならないか分からない(それはです私のコードはどこにもない)。どんな助けやヒントも感謝します。

問題の原因: - 私はチュートリアルに完全に従っていませんでした。私はライブラリをビルドしたりインストールしたりしていないので、私は単純にPythonファイルと同じフォルダにソースコードを投げただけです(* .cファイルを上書きしないよう異なる名前を付けました)。私がC++クラスで行ったことから、これはうまくいくはずです。何か理由がありますか?もしそうなら、私はCファイルを普通にビルドする方法を知りません。

誰かが私が間違ってやっていることや、それを解決する方法を見つけるための良い措置を考えているかどうかを知りたいと思います。ありがとう!

+4

実際に行ったことを私たちに教えてください。ファイルリスト、エラーメッセージ、デバッグ出力、全体のビット。 – Marcin

+1

Cythonを効果的に使用するには、少なくとも現在はCを知る必要があります。それ以外の場合は、Pythonに固執してください。 –

+0

私は同じ問題を抱えています - 私はそれがx86アーキテクチャ上でのCネームマングリングに関係していると考えています。 http://forum.pellesc.de/index.php?topic=4103.0およびhttps://github.com/SciTools/conda-recipes-scitools/issues/29も参照してください。私はまだ問題への解決策を持っていません。 – pelson

答えて

0

あなたの問題は言語としてCを知ることではないようですが、あなたのパスに適切なライブラリを取得することに関連しています。 queue.objが「未解決の外部参照」エラーを投げているときは、通常、Cコード(cythonが生成する)がライブラリからいくつかの関数を呼び出すが、ビルドシステムはライブラリを見つけることができないということを意味する。申し訳ありませんが、私もcythonを初めて使っています。したがって、_queue_new関数の予想されるパスを解読することはできません。

関連する問題