実行時に使用する外部DLLファイルを現在のプロジェクトの.exe出力場所に移動することに関するその他の記事を見てきましたが、奇妙な問題が発生して情報が見つからないようです。CMake複数のDLLをコピーできません
私は私のプロジェクトのための私の出力ディレクトリに私のlibfreenect2 DLLをコピーするには、次のカスタムコマンドを使用しています:
add_custom_command(TARGET kinect_feeds POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"libfreenect2_output_path/bin/*.dll"
$<TARGET_FILE_DIR:kinect_feeds>)
はcmakeのは、うまく私のプロジェクトを設定しますが、私は、Visual Studioでコマンドを実行するために行くときファイルをコピーしようとするとエラーになります。私は問題がワイルドカード文字であると思う。 Visual Studioのエラー出力を使って完全なコマンドをgit bashウィンドウにコピーし、期待どおりに動作します。これらは明示的にそうように定義されている場合も、Visual Studioは、複数のファイルを移動する問題がない:
add_custom_command(TARGET kinect_feeds POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"libfreenect2_output_path/bin/freenect2.dll"
"libfreenect2_output_path/bin/glfw3.dll"
$<TARGET_FILE_DIR:kinect_feeds>)
私の質問は、Visual Studioによって実行されるとき、コマンドや、私が行方不明です何かがあるワイルドカード文字は、CMakeのでは動作しない、あります?今のところ私はすべてのDLLファイルを明示的に打ち込むだけですが、これを避けることを望んでいました。
私はCMakeとVisual Studio 2015 Community Editionの最新バージョンを使用しています。
この場合のワイルドカード引用は、「シェル」に依存します。私はVSを使用して以来、長い時間がかかりましたが、二重引用符ではなく、ワイルドカードの周りに単一引用符が使用されている可能性があります。 – nega
私はシングルクォートを試しましたが、それでもコマンドが好きではありませんでした。私はVSがワイルドカードとして受け入れるかもしれないものを調べます。私はエスケープ文字で賢明にならなければならないかもしれないと思っています。 – Wired365