15

を使用して C++ で Python モジュールを実行しようとしています"#include <Python.h>"が、プロジェクトの「追加のインクルード依存関係」を「\include」に設定した後、デバッグ時に次のエラーが発生します。

LINK : fatal error LNK1104: cannot open file 'python27_d.lib'

Python の開発バージョンをダウンロードする必要があることを読みましたが、そのリンクが見つかりませんでした。さらに、ファイル「python27_d.lib」を「libs」フォルダーにコピーするだけでよいのでしょうか?

Python の Anaconda ディストリビューションを使用していることに注意してください。

前もって感謝します!

4

6 に答える 6

5

Visual Studio をデバッグではなくリリース モードにします。

于 2015-03-09T19:19:07.047 に答える
1

Boost.python を使用して C++ から Anaconda python パッケージにアクセスしようとしたときに、同様のエラーが発生しました。まず、C++ Boost ライブラリに対する私の個人的な印象は、ドキュメントが不完全であるにもかかわらず素晴らしいアイデアだということです。boost.org には大量のドキュメントがありますが、作成者が言及するにはあまりにも些細なことだと思われる重要な詳細が常に省略されているようです。でも、せっけん箱から出させてください...

Boost.Python を自分のシステムで動作させる方法を [できれば、最終的に] 理解するための継続的な推進力は、Anaconda ディストリビューションに含まれる非常に多くの優れた Python 科学パッケージ [SymPy、Numpy、SciPy、matplotlib など] があることです。また、Qt Creator でビルドされた C++ プロジェクトからそれらにアクセスできれば非常に便利です。そして、Boost ドキュメントは、Boost.Python が私のためにそれを行うことになっていることを示唆しているようです。悲しいかな、これらのドキュメントは、著者が言及するにはあまりにも些細なことだと考えているように見える重要な詳細を省略しているようです...

とにかく、最初は、python.h が見つからないというビルド エラーが発生しました。Qt Creator プロジェクトの .pro ファイルに次の 2 つのステートメントを追加することで、この問題を解決しました。これにより、Boost がインクルード ファイルをインストールした場所と、Anaconda がシステムの python.h ファイルをインストールした場所が qmake に通知されます。

INCLUDEPATH += C:\boost_1_55_0
INCLUDEPATH += C:\Anaconda\include

その後、「python27.lib」が見つからないことを示す LNK1104 エラーが発生しました。これらの 2 つのステートメントを .pro ファイルに追加することで、それを取り除きました。1 つ目は qmake に Anaconda の python27.lib ファイルの場所を伝えます。2 番目は、boost.python バイナリを見つける場所を qmake に指示します。

LIBS += "C:/Anaconda/libs"
LIBS += "C:/boost_1_55_0/stage/lib/libboost_python-vc110-mt-gd-1_55.lib"

しかし、それは私がこれまでに得た限りです。ファイル 'C:/Anaconda/libs.obj' を開けないことを示すエラーが表示されるようになりましたが、これに対する修正がまだ見つかっていません。もちろん、エラーはそのファイルが存在しないことが原因です。課題は、なぜそれが求められているのか、どこで見つけられるのかを発見することです。

于 2014-05-14T08:33:00.560 に答える