我想建立openssl并将我的项目链接到它.在我的项目中,我有一个名为net的库,它是使用openssl的部分.所以在我的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()
当我构建时,编译器抱怨它无法找到包含文件,并且根本没有构建openssl源代码,因为没有out32dll和inc32.
我的问题是:ExternalProject_Add何时实际构建项目?如果我根据openssl创建我的网库,这是否意味着当我构建网络时,它需要先检查并构建openssl?