Как вы строите PoDoFo на Windows с поддержкой libcrypto?
У меня есть проект, который использует PoDoFo для поддержки PDF, и я пытаюсь обновить его, чтобы использовать версию HEAD из дерева SVN.
Большое изменение по сравнению с последней версией, которую я использовал, - это дополнение к libcrypto из OpenSSL, которое, по-видимому, необходимо. Я скачал и собрал OpenSSL и настроил соответствующие параметры (или так надеялся), чтобы cmake мог найти libcrypto.
Кажется, cmake находит это нормально, но когда я пытаюсь собрать из полученного make-файла, я получаю ошибку:
Encrypt.cpp (50): фатальная ошибка C1083: не удается открыть включаемый файл: 'openssl/md5.h': такого файла или каталога нет
Я сократил свой сценарий сборки, чтобы сосредоточиться на этой проблеме:
SETLOCAL установить ROOT=%CD% пуш подофо установить CMAKE_PARAMS=-Wno-dev -C ..\BuildSetup.cmake . -DCMAKE_INSTALL_PREFIX:PATH=%1 set CMAKE_PARAMS_RELEASE=-DCMAKE_BUILD_TYPE=Release %CMAKE_PARAMS% вызов "%VS100COMNTOOLS%..\..\vc\vcvarsall.bat" x86 del CMakeCache.txt >nul rd /s /q CMakeFiles >nul set CMAKE_PREFIX_PATH=%ROOT%\install\zlib\x86 set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROOT%\install\freetype\x86 set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROOT%\install\libjpeg\x86 set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROOT%\install\libpng\x86 set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROOT%\install\openssl\x86 set CRYPTO=-DLIBCRYPTO_INCLUDE_DIR=%ROOT%\install\openssl\x86\include set CRYPTO=%CRYPTO% -DLIBCRYPTO_LIBRARY_NAMES=libeay32 cmake %CRYPTO% %CMAKE_PARAMS_RELEASE%\x86 -G "NMake Makefiles" cmake --build . --target install --clean-first POPD Endlocal
мой BuildSetup.cmake
файл:
set (CMAKE_CONFIGURATION_TYPES "Debug; выпуск" CACHE STRING "для типов конфигурации" FORCE) набор (CMAKE_INSTALL_PREFIX "../install" CACHE PATH "путь установки" FORCE) набор (CMAKE_C_FLAGS_RELEASE "/MT /O1 /Ob2 /D NDEBUG" CACHE STRING "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" CACHE STRING "C отладочные флаги" FORCE) набор (CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "C++ флаги отладки" FORCE) установлено (BUILD_SHARED_LIBS OFF CACHE STRING "")
Я попытался явно добавить путь openssl/md5.h
к INCLUDE
переменная окружения без эффекта.
Я также пытался использовать генератор "Visual Studio 10". Та же проблема.
2 ответа
StefanB ответ правильный. Мне нужно было добавить путь включения, чтобы заставить cmake правильно его собрать. Однако вместо того, чтобы вручную взломать файл проекта (или makefile в моем случае), я использовал CL
Переменная окружения, сообщающая компилятору, где искать заголовки OpenSSL. Я добавил команду:
set CL=/I "%ROOT%\install\openssl\x86\include"
перед запуском cmake и он собран без ошибок.
Я просто столкнулся с той же проблемой!
Если вы строите с помощью VisualStudio, вы должны вручную добавить каталог openssl в каталоги C++ include в свойствах проекта podofo.
в моем случае..\openssl_vc10\include
тогда сборка успешна. У меня нет времени, чтобы проверить, почему cmake не устанавливает это.