0

私の問題は、プロジェクトを CMake で再生成し、後で VisualStudio でビルドしようとするたびに、ライブラリを開くことができないため、最初は常に失敗するため、2 回試行する必要があることです。もう着いている。2回目にビルドすると、問題なく動作します。

VisualStudioにそのライブラリを自動的にプルしてインクルードさせ、CMakeファイルの何かが間違った順序になっているためだと思いますが、よくわかりません。

これは、プロジェクトに Asio と Websocket++ をインクルードする CMake コードです。VS が開けないファイルは、最後の行の Asio.lib ファイルです。Websocket++ を実行するには Asio が必要です。

ADD_DEFINITIONS(-DASIO_STANDALONE )
ADD_DEFINITIONS(-D_WEBSOCKETPP_CPP11_RANDOM_DEVICE_)
ADD_DEFINITIONS(-D_WEBSOCKETPP_CPP11_TYPE_TRAITS_)

Include(ExternalProject)
ExternalProject_Add(extasio
    GIT_REPOSITORY https://github.com/tobiasrau/asio.git
    GIT_TAG cmake)
ExternalProject_Add(extwebsocketpp
    GIT_REPOSITORY https://github.com/TobiasPiontek/websocketpp.git)

include_directories(${EXTERNAL_INSTALL_LOCATION}/include "build/extwebsocketpp-prefix/src/extwebsocketpp/install/include" "build/extasio-prefix/src/extasio/include")
target_link_libraries(Test ${CMAKE_SOURCE_DIR}/build/extasio-prefix/src/extasio/lib/asio.lib)

助けてくれてありがとう

4

1 に答える 1

0

実行可能ファイルの前に確実にExternalProjectビルドするには、対応する依存関係を追加する必要があります。

add_dependencies(Test extasio)

同様に、一方ExternalProjectが他方より前にビルドされるようにするには、それらの間の依存関係を指定します。

add_dependencies(extwebsocketpp extasio)
于 2018-09-11T13:11:48.403 に答える