0

BoostPython を使用して C++ でプログラムを作成しようとしています。

私のプリセットは次のとおりです。

を。Win32 コンソール アプリケーション。

b. プロパティ -> C/C++ -> 一般 -> 追加のインクルード ディレクトリ -> C:\Python27\include;C:\Program Files\boost\boost_1_54_0;

c. プロパティ -> リンカー -> 一般 -> 追加ライブラリの指示 -> C:\Python27\libs;

d. Microsoft Visual Studio 2012 Express バージョン + Python 27 + Boost 1.54

そして私のコードは次のようなものです:

#include <boost/python.hpp>
using namespace boost::python;

int main( int argc, char ** argv ) 
{
    return 0;
}

ご覧のとおり、このコードには空の main 関数があります。そして、エラーメッセージが表示されました

エラー LNK1104: ファイル 'boost_python-vc110-mt-gd-1_54.lib' を開けません

ブースト ('bootstrap.bat'+'bjam.exe') のインストールを確認し、ブースト ライブラリがインストールされているフォルダー内で 'boost_python-vc110-mt-gd-1_54.lib' を検索しましたが、何も見つかりませんでした.

私の問題とは異なり、私はいくつかの同様の投稿を探しました。彼らが見逃したlibファイルには接頭辞「lib」が付いていました。一方、この投稿は私の投稿と非常に似ていることがわかりました。しかし、OPが問題を解決するときにOPが間違いを犯したことがわかりました。つまり、Boost は python 2.2 およびその新しいバージョンと互換性があります。そして、彼の答えの残りは私には役に立ちません。

この問題は、インストール中に何か間違ったことをしたか、ライブラリをアプリケーションにリンクするときに間違っていたために発生した可能性があると思います。

誰でも私を助けてくれますか?詳細な解決策は素晴らしいでしょう。どうもありがとう。:)

================================================== ============

編集:

ビルド済みのバイナリ ファイルを使用して Boost を再インストールしました。これで、コンパイラが要求した lib ファイルにリンクできます。しかし、新たな問題が提起されています。今、私は2つの新しいエラーがあります:

エラー LNK2001: 未解決の外部シンボル __imp___Py_NoneStruct

エラー LNK1120: 1 つの未解決の外部情報

行をコメントアウトする#include <boost/python.hpp>と、上記のエラーはなくなりました。

原因がどうしても解りません。誰でもこれで私を助けることができますか?どうもありがとう。

4

2 に答える 2

0

Boost ライブラリがコンピュータに適切にインストールされていないため、エラーが発生することがわかりました。実際には、鍵は bjam であり、これらの必要なすべてのライブラリを構築するには bjam を実行する必要があります。

この問題に遭遇した他の人には、bjam を適切に実行する方法がわからない場合は、Boost のビルド済みバイナリ ファイルを検索することをお勧めします。これにより、多くの時間を節約できます。

于 2013-09-24T14:46:11.040 に答える
0

C:\Python27\libs フォルダーをリンカー設定に追加しましたが、ブースト ファイルがありません。 ブースト ライブラリ ファイルを生成するには、ブースト
を実行する必要があります。bjam多くのブーストはヘッダーのみですが、ビルドする必要があるライブラリがいくつかあります。
それが完了したら、ディレクトリを追加する必要があります

「プロパティ -> リンカー -> 一般 -> 追加のライブラリ ディレクトリ」

于 2013-09-23T09:56:31.143 に答える