0

私はこの未解決の外部シンボルエラーで1週間以上立ち往生しています。たとえば、TBB lib(および別の投稿で言及されるPointGrey lib)では、ライブラリ(dllまたはlibはわかりません!)にリンクできず、この種のリンクエラーが発生します。

これは、TBBlibに関するIntelの構成ガイドです。

私はVS2008、win7を使用しています。このガイドは、スクリプトファイルを実行するだけで、作成するすべてのプロジェクトが自動的に適切に構成されることを意味します((1)に従って)。私はそれを正しく理解していますか?

これまでのところ、Intelの元のサンプルプロジェクトは、設定なしで正しく実行されています。[実行]をクリックするだけです。しかし、同じサンプルコードから作成したプロジェクトでは、リンクエラーが発生します

PS:スクリプトは次のとおりです:tbbvars.bat <\ arch> \ <\ vs> \

4

1 に答える 1

0

一部のライブラリはlibファイルとしてリンクされており、プロジェクトにこれらの依存関係を通知する必要がある場合があります。表示されるヘルプは、プロジェクト->プロパティ->リンカー->入力->追加の依存関係に移動し、tbb_debug.libまたはtbb.libを追加するように指示します(デバッグモードでビルドする場合は_debugバージョンを使用し、もう一方はリリース)-おそらくx64ビルド用に他の2つのバージョンがあるため、ビルドバージョンごとにこれを行う必要があります。
次に、[プロジェクト]->[プロパティ]->[リンカー]->[入力]->[一般]->[追加のライブラリディレクトリ]に移動し、提案されたライブラリディレクトリを追加します。(ここでも、32/64ビット用に別々のディレクトリ)。
もちろん、VC / c++のプロパティ->一般->ディレクトリのインクルードもあります。ここで$(TBBROOT)\includeを追加します。
インテルのサンプルプロジェクトのプロジェクトプロパティを確認してください。
スクリプトを実行する場合、実行可能ファイルにdllが含まれるようになると、リンカーによって(および/または実行中に)それらが検出されます。さらに重要なのは、Env Var TBBROOTを作成することです。これは、プロパティに追加することになっているものによって参照されます。その変数がない場合は、絶対パスを追加する必要があります。
コメントのオプションについては、はい、追加のEnv Var(またはPATHへのパス)を追加する代わりに、別の場所でライブラリを探すようにVSに指示できます。考慮すべき唯一のことは、実行にいくつかのdllが必要かどうかです。その場合、ビルド後にexeと同じフォルダーにそれらをコピーし、インクルードで絶対パスを使用することができます。また、携帯性も少し劣ります...

于 2012-05-03T17:11:23.197 に答える