我是一个C++初学者,我正在尝试使用Visual Studio 2017和cmake
在Windows 32位上构建ssh.dll
。我已经下载了最新版本的libssh
,并尝试在按照推荐的步骤配置和生成后,使用cmake
从源代码构建ssh.dll
。
生成后,我用Visual Studio 2017打开libssh解决方案文件并构建它,但在编译时出现了一些缺少库的错误,我通过将这些库添加到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
为了解决这个问题,我还尝试用这些库文件的其他版本替换有问题的库文件,但没有任何运气。下一步我可以尝试什么?
1条答案
按热度按时间ebdffaop1#
我只是git一个git克隆并成功地构建了它。
我是这么做的。
对于静态链接,请包含-DVCPKG_TARGET_TRIPLET=x86-windows-static
在Visual Studio 2017中打开解决方案文件,它将成功生成。
如果您要为32位体系结构构建