Сначала мы строим libssh2
с WinCNG
бэкендом, используя msvc
:
cmake . -DCRYPTO_BACKEND=WinCNG -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=%LIBSSH2%
cmake --build . --target install
libgit2
документы говорят, что все, что нам нужно сделать, это установить DEMBED_SSH_PATH
, хотя это не удается указание, что его установить. Может быть, это так очевидно, что кажется неуместным. Однако: я не C
парень и не имею понятия о процессе сборки cmake. Из того, что я понимаю, папка, в которой находится результат предыдущей сборки со всеми ее подпапками, такими как include
и bin
, должна иметь правильный путь, поэтому использование %LIBSSH2%
должно подойти.
Когда, наконец, попытка построить libgit2
с запущенным
cmake . -DBUILD_CLAR=OFF -DCMAKE_BUILD_TYPE=Release -DEMBED_SSH_PATH=%LIBSSH2% -DCMAKE_INSTALL_PREFIX="%LIBGIT2%"
cmake --build . --target install
Это не удастся, потому что он не может найти ссылки на заголовочные файлы / двоичные файлы. Мы видим что-то вроде:
error LNK2019: unresolved external symbol libssh2_init referenced in function
Я уже пытался заменить обратные слэши путей \
на обычные слэши /
, так как это кажется распространенной проблемой. Я также попытался явно установить
set CMAKE_INCLUDE_PATH=%LIBSSH2%/include
set CMAKE_LIBRARY_PATH=%LIBSSH2%/lib
, оба сбоев с одинаковым результатом.
Может кто-нибудь предоставить воспроизводимый способ компиляции libgit2
со встроенным libssh2
?