2012-03-14 12 views
0

Visual Studio Express 2010でCMakeを使用してParaViewを構築しています。生成されたソリューションに問題があります。問題は、追加の依存関係(MPIライブラリ)のために生成されたエントリの1つがセミコロンで区切られている必要がありますが、スペースで区切られていることです。この結果、プロジェクトをビルドするときにリンカは多くのエラーを生成します。CMAKEを使用してVisual Studio Express 2010用ParaViewを構築する

これはエラーメッセージです:

LINK:致命的なエラーLNK1104:ファイルを開くことができません「C:\プログラムファイル(x86の)\ MPICH2 \ libに\ mpi.lib C:\プログラムファイル(x86の) \ MPICH2 \ lib \ cxx.lib 'となります。プロジェクト構成で

読み込みエントリがあります:

C:\プログラムファイル (x86の)\ MPICH2 \ libに\ mpi.lib C:\プログラムファイル(x86の)\ MPICH2 \は、 LIB \ cxx.lib

しかし、セミコロンで区切られた2つのエントリがあるはずです:

C:\プログラムファイル(x86の)\ MPICH2 \ libに\ mpi.lib; C:\プログラムファイル(x86)\ MPICH2 \ lib \ cxx.lib

プロジェクトへの参照を手動でプロジェクトを修正して修正しようとしましたが、時間がかかりすぎています。

これは、CMakeレベルまたはVisual Studioレベル(ソリューション全体の追加の依存関係エントリを修正することによって)で修正できると思いますが、これらのことを行う方法はわかりません。私は変更する必要があるものを正確に突き止めるためにCMakeのアーキテクチャーには慣れていません。これをどうすれば解決できますか?

答えて

0

CMakeLists.txtにTARGET_LINK_LIBRARIESという行がないかチェックしてください。このコマンドが大括弧の中に引用符を使用する場合は、それらを削除してみてください。たとえば、あなたが持っている場合:へ

TARGET_LINK_LIBRARIES(MainExe "${lib1} ${lib2}") 

変更それ:

TARGET_LINK_LIBRARIES(MainExe ${lib1} ${lib2}) 

を、この問題が解決しない場合は、おそらくあなたの質問にCMakeLists.txtを投稿する必要があります。

0

これはFindMPIモジュールのバグのようです。これを修正する最も簡単な方法は、ビルドツリーのルートにあるCMakeCache.txtを編集することです。スペースの代わりにセミコロンを使用するには、MPI_LIBRARY項目とMPI_LIBRARIES項目を編集する必要があります。

関連する問題