openssl をビルドし、それに対して自分のプロジェクトをリンクしたいと考えています。私のプロジェクトには、openssl を使用する部分である net というライブラリがあります。だから私のnet\CMakeListに、私は追加しました
include_directories(
../
+ ../../../ext/openssl/inc32/
)
add_library(net STATIC ${sources})
+ ADD_DEPENDENCIES(net openssl)
すべての外部ライブラリを整理するために使用される ext フォルダーには、openssl という名前のフォルダーに解凍したばかりの openssl ソース コードがあります。次に、ext\CmakeList を編集しました
message(STATUS "Configuring OpenSSL")
set(openssl_dir openssl)
if (CMAKE_CL_64)
include(ExternalProject)
set(OPENSSL_CONFIGURE perl\ Configure\ VC-WIN64A)
set(OPENSSL_MAKE ms\\do_win64a\ &&\ nmake\ -f\ ms\\ntdll.mak)
ExternalProject_Add(openssl
PREFIX openssl
#-- Download Step ----------
SOURCE_DIR ${CMAKE_SOURCE_DIR}/ext/openssl
#--Configure step ----------
CONFIGURE_COMMAND ${OPENSSL_CONFIGURE}
#--Build Step ----------
BUILD_COMMAND ${OPENSSL_MAKE}
BUILD_IN_SOURCE 1
#--install Step ----------
INSTALL_COMMAND ""}
)
endif()
私がビルドしたとき、コンパイラはインクルード ファイルが見つからないと文句を言いました。out32dll と inc32 がないため、openssl ソース コードはまったくビルドされませんでした。
私の質問は: ExternalProject_Add が実際にプロジェクトをビルドするのはいつですか? openssl に依存するネット ライブラリを作成する場合、ネットをビルドするときに最初に openssl をチェックしてビルドする必要があるということですか?