VS2015使用boost asio构建openssl

时间:2016-08-19 06:47:44

标签: c++ windows visual-studio boost openssl

我正在编译 Visual Studio 2015 Boost v1.61 OpenSSL v" 1.1.0-pre7-dev" (来自OpenSSL Github)。根据 INSTALL 文件中的内容,我安装了类似的OpenSSL(对于 debug mod):

$ perl Configure VC-WIN32 --prefix=D:/OpenSSL/build/debug --debug
$ nmake
$ nmake test
$ nmake install

在项目设置中,我添加了:

  • " C / C ++中的包含目录路径 - 常规"(D:/ OpenSSL / build / debug / include)

  • "链接器中的lib目录(D:/ OpenSSL / build / debug / lib) - 一般 - 其他依赖项"

我使用 c ++ boost asio SSL 库但是当我构建项目时出现此错误(请参阅this pastebin获取完整输出):

1>  main.cpp
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(43): error C2589: '(' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(43): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(46): error C2589: ';' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(46): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(47): error C2589: ';' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(47): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(64): error C2589: ';' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(64): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(65): error C2589: ';' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(65): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(66): error C2589: 'while' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(66): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(72): error C2589: 'while' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(72): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(73): error C2589: 'while' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(73): error C2059: erreur de syntaxe : '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(76): error C2589: 'while' : jeton non conforme à droite de '::'
1>d:\boost\boost_1_61_0\boost\asio\ssl\detail\impl\openssl_init.ipp(76): error C2059: erreur de syntaxe : '::'
...

我注意到即使我省略了在链接器中添加lib目录,我也有同样的错误。

为什么我收到编译错误?

编辑1:

感谢jww的回答,确实,1.1.0版本的OpenSSL与当前版本的Boost不兼容。我下载了OpenSSL 1.0.2h,效果很好。

0 个答案:

没有答案