【发布时间】:2014-07-01 11:14:40
【问题描述】:
我想构建 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制作我的net库,是否意味着我在构建net时需要先检查并构建openssl?
【问题讨论】:
-
这是因为你需要从
vsvarsall.bat的环境开始。 -
抱歉 ruslo,我不太明白你的回答。你介意给我更多信息吗?谢谢。
-
@RAM:请停止将标签大量编辑成问题。将这种大规模编辑留给不需要审核的用户。即使您编辑标签,也要确保修复帖子的所有问题。
-
@BDL 在这种情况下,谁会在有关使用 cmake 的 ExternalProject_Add 的问题中添加外部项目标签?没人吗?
-
@RAM:当你在正常过程中遇到这样的问题时,编辑它们就可以了,但从编辑中我看到它看起来更像是你在专门搜索可以添加标签的问题.其中一些已经有好几年了。将其留给拥有超过 2k 的用户,或者等到您自己拥有 2k。批量编辑 (
标签: windows cmake openssl 64-bit external-project