2017-06-27 10 views
0

ANN:おおよその最近傍検索。QT作成者4.21(コミュニティ)の入力ファイル 'ANN.lib'を開くことができません

私はwindows-10 64ビットシステムでQTクリエータを使用しています。私はVisual Studio2015でANNの公式サイトからソースファイルをコンパイルし、サンプルを正常に実行し、同じ環境でテストしました。それはまた私がdllとlibファイルを得る方法です。

しかし、ライブラリをQT作成者に追加しようとしましたが、失敗しました。私は外部ライブラリと内部ライブラリの両方を使用していましたが、システムライブラリを試しましたが、「開けない」という問題は常に現れます。一方、私はすべての.hファイル、dllとlibファイルをプロジェクトのディレクトリに入れてみましたが、それと同じ問題です。 qmakeファイルで設定した後は、他の外部ライブラリもすべて正常に動作します。ここに例があります:

LIBS += -lopengl32 

これは私が追加した内部ライブラリです(おそらくシステムライブラリ)。そして:

win32:CONFIG(release, debug|release): LIBS += -LC:/local/boost_1_63_0/lib64-msvc-14.0/ -lboost_filesystem-vc140-mt-gd-1_63 
-llibboost_filesystem-vc140-mt-s-1_63 
-llibboost_serialization-vc140-mt-s-1_63 
-llibboost_system-vc140-mt-s-1_63 
else:win32:CONFIG(debug, debug|release): 
LIBS += -LC:/local/boost_1_63_0/lib64-msvc-14.0/ 
INCLUDEPATH += C:/local/boost_1_63_0 
DEPENDPATH += C:/local/boost_1_63_0 

ご覧のとおり、上記2つのライブラリは完全に動作しています。上記のように、私のVS2015はシステムディレクトリに置いたライブラリでサンプルをコンパイルできます。だから私はどのように私のQTでANNのlibを構成する必要がありますか?

+0

'LIBS + = -Lc:/ path/to/ann/folder -lann'を試したことがありますか?同じコンパイラ(例えば32対64bit)でライブラリをコンパイルしましたか? – m7913d

+0

はい私は外部ライブラリとしてその方法を試みました。私はdist Cにフォルダを作成し、その中にすべてを入れて、あなたが言った指示を使用しました。 ANN.libが私によって選択され、自動的にインクルードファイルが選択されました。しかし、それと同じ問題です...私はとても混乱しています。 Btw、私は 'Win32 Release'によってVS2015-64でライブラリをコンパイルし、私のQTも64bitです。 –

+0

私はVS2015 'x64 Release'でコンパイルしようとしていました。 DLLとANN.libは特定のディレクトリに更新されます。しかし、まだ同じです... –

答えて

0

私は上記のコメントをした男の提案によってこの問題の主要部分を解決しました。どうもありがとう!現在のところ、私はANN.libをQTクリエイターでいくつかの他のライブラリ(エラーをコンパイルせずに)で正しく実行できるという状況です。

私が言及したように、私はすでにdll(system32)、.lib(my visual studio 14/VC/lib)、.h(my visual studio 14/VC/include)などの必要なファイルをすべてシステムディレクトリに入れました。しかし、それはANN.libを正常に実行するには不十分と思われました。

私は最新のdllとlibを生成するために、x64リリースのコンパイルの設定を追加しました。その後、私は最後のステップをやり直しましたが、まだ動作していません。その後、すべてのファイルをディスクCにある単一のディレクトリに置き、このパスを外部ライブラリとしてqmakeに追加します。今それは動作します。システムのディレクトリにあるものは削除しませんでしたが、実行中です。私が言及したいのは、環境変数にこのパスを追加することです。つまり、外部ライブラリとして作成することなくlibを実行するのに、+= -lANNを使用することができます。どちらも正常に動作します。

関連する問題