我正在编译 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,效果很好。