Я новичок в C++ и пытаюсь собрать ssh.dll
в 32-разрядной версии Windows, используя Visual Studio 2017 и cmake
. Я загрузил последнюю версию libssh
и попытался собрать ssh.dll
из исходного кода, используя cmake
после настройки и генерации в соответствии с рекомендуемыми шагами.
После создания я открыл файл решения libssh с помощью Visual Studio 2017 и собрал его, но при компиляции он выдал несколько ошибок отсутствующих библиотек, которые я решил, добавив эти библиотеки в путь VC.
После добавления этих библиотек я начал выдавать около 600 ошибок компиляции, как показано ниже, связанных с синтаксисом (но синтаксис выглядит правильно в этих файлах библиотек).
Есть ли способ или предложение, с помощью которого я могу успешно решить их и создать файл .dll?
Ниже приведены некоторые из этих ошибок:
Severity Code Description Project File Line Suppression State
Error C2146 syntax error: missing ')' before identifier 'session' ssh_shared c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\libssh\priv.h 196
Error C2061 syntax error: identifier 'channel' ssh_shared c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\libssh\callbacks.h 64
Error C2059 syntax error: ';' ssh_shared c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\libssh\callbacks.h 64
Error C2146 syntax error: missing ')' before identifier 'fd' ssh_shared c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\libssh\libssh.h 656
Error C2059 syntax error: ')' ssh_shared c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\libssh\libssh.h 597
Error C2081 'socket_t': name in formal parameter list illegal ssh_shared c:\apps\MVS15\VC\Tools\MSVC\14.10.25017\include\libssh\poll.h 135
Error C2059 syntax error: '}' ssh_shared c:\apps\MVS15\VC\Tools\MSVC\14.10.25017\include\libssh\session.h 203
Error C2146 syntax error: missing ')' before identifier 'fd' ssh_shared c:\apps\MVS15\VC\Tools\MSVC\14.10.25017\include\libssh\socket.h 36
Error C2059 syntax error: ';' ssh_shared c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\libssh\callbacks.h 64
Error C2037 left of 'iqmp' specifies undefined struct/union 'rsa_st' ssh_shared C:\apps\vcpkg\downloads\libssh-0.7.6.tar\libssh-0.7.6\src\libcrypto-compat.c 77
Error C2037 left of 'dmq1' specifies undefined struct/union 'rsa_st' ssh_shared C:\apps\vcpkg\downloads\libssh-0.7.6.tar\libssh-0.7.6\src\libcrypto-compat.c 76
Чтобы решить эту проблему, я также попытался заменить сомнительные файлы библиотеки другой версией этих файлов библиотеки, но безуспешно. Что я могу попробовать дальше?
zlib
иopenssl
перед созданием решения с помощьюcmake-gui.exe
. Но я не уверен, почему мне пришлось вручную включать библиотеки в мою папку VC, как для файлов заголовковopenssl
, так и дляlibssh
. - person CodeHunter   schedule 31.01.2019libssh
и установилzlib
,openssl
иcmake
. Запустилcmake-gui.exe
, указав его на каталогsrc
загруженногоlibssh
, настроил его и создал сборку. После этого я мог видеть файл libssh_solution в моей папке сборки, который открылся в Visual Studio 2017 для компиляции. Изначально отсутствовали библиотеки, что вызывало ошибки, связанные с отсутствующей библиотекой. Это были 'libssh
, 'openssl'zlib
иconfig.h
. Я добавил их вручную в свой путь VC, после чего при повторной компиляции я начал получать вышеуказанные ошибки, о которых я упоминал в ОП. - person CodeHunter   schedule 31.01.2019