Pythonで使用するために、Boost/Pythonを使用してC++コードから生成されたDLLを構築しようとしています(現在数日間)。私はドイツ出身の学生で、今までほとんど Java を使っていました (以前は C++ で基本的な OpenGL と gimp フィルターをいくつか書きました)。ですから、下手な英語や C++ の初心者の間違いについては、あらかじめご容赦ください。つまり、Java でのプログラミングは、C++ に比べてはるかに快適です。しかし、小競り合いは十分です。
エラー:
LINK : fatal error LNK1104: File "boost_python-vc110-mt-gd-1_53.lib" could not be openend
私のプリセット:
-MS Visual Studio 2012 (11.0) を使用
-boost_1_53_0 を使用
-python2.7 を使用 (3.3 では問題が発生する可能性があると聞きました)
私がしたこと:
PythonをインストールしてPATHに追加しました。次に、ブースト チュートリアル ページで説明されているように、VS で新しい空のプロジェクトと、次の内容のクラス ファイル「Test.cpp」を作成しました。
char const* greet()
{
return "hello world";
}
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(Test)
{
using namespace boost::python
def("greet", greet);
}
次に、VS プロジェクトのプロパティに新しい部分が追加されました。
構成プロパティ > 一般 > 構成タイプ > 動的ライブラリ (.dll)
C/C++ > 一般 > インクルードディレクトリの追加 > C:[..]\boost_1_53_0
リンカー > 一般 > 追加のライブラリ ディレクトリ > C:[..]boost_1_53_0\stage\lib
エラーから、リンカーまたはインクルードで何か問題があったと思います。よくわからなかったので、Linker > General > Additional Library Directories も boost_1_53_0\libs に変更しましたが、同じエラーが発生しました。はい、正しくpythonを含めました。Python の横に何か他のものを Linker > Input for boost に入れる必要があるかどうかもわかりません。
次に、必要なものがすべて揃っていることを確認するために、msvc-11.0 以外のオプションを指定せずに bjam を使用してブーストをビルドしましたが (boost/python には追加のビルドは必要ないことを読みました)、それでも同じエラーが発生しました。誰かが私を助けることができますか?何をすればいいのか、順を追って説明したいと思います。これには本当に絶望しています。
ところで、「libboost_filesystem-vc100-mt-s-1_49.lib」を使用したリンカー エラー LNK1104の数日前にこの男と同じエラーが発生し、作業を停止し、再度開始すると、まったく新しいエラーが発生しました (私はこれがどのように起こったかはわかりません)。