我有一个使用PoDoFo来支持PDF的项目,并且我试图将其更新为使用SVN树中的HEAD版本。
与我使用的上一个版本相比,最大的变化是来自OpenSSL的libcrypto的添加,这似乎是必需的。我下载并构建了OpenSSL并设置了适当的选项(或者我希望如此),以便cmake可以找到libcrypto。
cmake似乎没问题,但是当我尝试从生成的makefile进行构建时,出现错误:
Encrypt.cpp(50):致命错误C1083:无法打开包含文件:'openssl / md5.h':没有此类文件或目录
我缩减了构建脚本,以便可以专注于此问题:
setlocal 设置ROOT =%CD% 推波多福 设置CMAKE_PARAMS = -Wno-dev -C .. \ BuildSetup.cmake。-DCMAKE_INSTALL_PREFIX:PATH =%1 设置CMAKE_PARAMS_RELEASE = -DCMAKE_BUILD_TYPE =发布%CMAKE_PARAMS% 呼叫“%VS100COMNTOOLS%.. \ .. \ vc \ vcvarsall.bat” x86 del CMakeCache.txt> nul rd / s / q CMakeFiles> nul 设置CMAKE_PREFIX_PATH =%ROOT%\ install \ zlib \ x86 设置CMAKE_PREFIX_PATH =%CMAKE_PREFIX_PATH%;%ROOT%\ install \ freetype \ x86 设置CMAKE_PREFIX_PATH =%CMAKE_PREFIX_PATH%;%ROOT%\ install \ libjpeg \ x86 设置CMAKE_PREFIX_PATH =%CMAKE_PREFIX_PATH%;%ROOT%\ install \ libpng \ x86 设置CMAKE_PREFIX_PATH =%CMAKE_PREFIX_PATH%;%ROOT%\ install \ openssl \ x86 设置CRYPTO = -DLIBCRYPTO_INCLUDE_DIR =%ROOT%\ install \ openssl \ x86 \ include 设置CRYPTO =%CRYPTO%-DLIBCRYPTO_LIBRARY_NAMES = libeay32 cmake%CRYPTO%%CMAKE_PARAMS_RELEASE%\ x86 -G“ NMake Makefiles” cmake --build。--target安装--clean-first 弹出 本地
我的BuildSetup.cmake
档案:
设置(CMAKE_CONFIGURATION_TYPES“调试;发布” CACHE STRING“配置类型” FORCE) 设置(CMAKE_INSTALL_PREFIX“ ../install” CACHE PATH“安装路径” FORCE) 设置(CMAKE_C_FLAGS_RELEASE“ / MT / O1 / Ob2 / D NDEBUG”缓存字符串“ C释放标志” FORCE) 设置(CMAKE_CXX_FLAGS_RELEASE“ / MT / O1 / Ob2 / D NDEBUG” CACHE STRING“ C ++释放标志” FORCE) 设置(CMAKE_C_FLAGS_DEBUG“ / D_DEBUG / MTd / Zi / Ob0 / Od / RTC1”缓存字符串“ C调试标志” FORCE) 设置(CMAKE_CXX_FLAGS_DEBUG“ / D_DEBUG / MTd / Zi / Ob0 / Od / RTC1”缓存字符串“ C ++调试标志” FORCE) 设定(BUILD_SHARED_LIBS OFF CACHE STRING“”)
我尝试显式地将的路径添加openssl/md5.h
到INCLUDE
环境变量中没有任何效果。
我还尝试使用“ Visual Studio 10”生成器。同样的问题。
StefanB的答案是正确的。我需要添加包含路径,以使cmake正确构建它。但是,我没有使用CL
环境变量来告诉编译器在哪里寻找OpenSSL标头,而没有手动修改项目文件(在我的情况下为makefile)。我添加了命令:
set CL=/I "%ROOT%\install\openssl\x86\include"
在运行cmake之前,它没有错误构建。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句