1

最後に、一日を過ごした後、Windowsでプロジェクトを正常にコンパイルするためにCMakeベースのプロジェクトを作成しました(Linuxで開発しています)。プログラムとブームを起動しましたが、dllライブラリが見つかりません。

だから、問題:

ライブラリと実行可能ファイルが内部にあるCMakeプロジェクトがあり、その実行可能ファイルはプロジェクトのライブラリを使用しています。プロジェクトには多くのサードパーティライブラリもあります。それはうまくコンパイルしてリンクします。起動しようとすると、プロジェクトのライブラリが見つからなかったというエラーが表示されます。実行可能ファイルのディレクトリにコピーしました。これで、サードパーティのライブラリが見つからなかったことが出力されます。すべてをexeのディレクトリにコピーしました。これで、gccのライブラリが見つからなかったことが出力されるので、パスにC:\ MinGW \ binを追加すると、正常に起動します。

しかし、私はそれが適切な方法ではないと感じています。チームメイト(新規)の立ち上げの苦痛を免れたいと思います。

4

1 に答える 1

2

すべてを静的にリンクするか、必要なinstall()呼び出しをCMakeLists.txtに追加します。必要なすべてのライブラリを同じディレクトリにインストールし、そこから実行可能ファイルを実行します。

CMAKE_BINARY_DIRから実行可能ファイルを実行する場合は、次のことができます。

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )

これにより、CMakeはリンクされたバイナリを同じディレクトリに配置します。

gccランタイムに関しては、dllをコピーするか、静的にリンクする以外に方法はありません。

于 2012-10-27T16:32:40.530 に答える