SDL中文论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8131|回复: 4
打印 上一主题 下一主题

[Discuss] 使用VS2015编译RoseSDK初步遇到的问题

[复制链接]

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
跳转到指定楼层
楼主
发表于 2017-1-2 16:03:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 望江饥 于 2017-1-2 16:11 编辑

昨晚先装了VS2013,打开“RoseSDK\apps-src\apps\projectfiles\vc\apps.sln”之后,发现工程设置的是Platform Toolset = 'v140',即Visual Studio 2015 (v140)。
强行设置为Visual Studio 2013 (v120)并添加不少缺失的include路径后,依然报告大量编译错误。于是立即还原系统,重装VS2015,并重置RoseSDK的git仓库。

使用VS2015编译librose时,和VS2013一样先是报告了几个include路径缺失,于是进入
librose属性页→配置属性→C/C++→常规→附加包含目录,新增如下路径:
..\..\external;
..\..\external\boringssl\include;
..\..\external\third_party\libsrtp\crypto\include;
..\..\external\third_party\libsrtp\include;
..\..\external\usrsctplib;
..\..\external\webrtc\common_audio\signal_processing\include;
..\..\external\webrtc\modules\audio_coding\codecs\isac\main\include;

接下来编译,和VS2013一样地产生普遍错误,怀疑是我的全局配置有误,求助!是不是编译配置哪里有问题?漏加了什么东西?操作系统是Win8.1

1>d:\project\rosesdk\apps-src\apps\external\boringssl\include\openssl\base.h(287): error C2059: 语法错误:“<parameter-list>”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\tls13_client.c(425): error C2059: 语法错误:“(”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(127): error C2059: 语法错误:“常量”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(127): error C2143: 语法错误: 缺少“{”(在“*”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(136): error C2065: “xn”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(136): error C2296: “*”: 非法,左操作数包含“LPCSTR”类型

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(139): error C2065: “xname_cmp”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(139): error C2059: 语法错误:“<cv-qualifer>”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(172): error C2059: 语法错误:“)”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(174): error C2181: 没有匹配 if 的非法 else

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(180): error C2059: 语法错误:“if”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(186): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(186): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(186): error C2143: 语法错误: 缺少“)”(在“?”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(186): error C2143: 语法错误: 缺少“{”(在“?”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(186): error C2059: 语法错误:“?”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(188): error C2371: “X509_free”: 重定义;不同的基类型

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(189): error C2059: 语法错误:“if”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(192): error C2059: 语法错误:“return”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_file.c(193): error C2059: 语法错误:“}”

1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(221): error C2011: “sockaddr”:“struct”类型重定义

1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(615): error C2011: “sockaddr_in”:“struct”类型重定义

1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(136): error C2011: “fd_set”:“struct”类型重定义

1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(1646): error C2375: “accept”: 重定义;不同的链接
回复

使用道具 举报

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
沙发
 楼主| 发表于 2017-1-2 16:04:41 | 只看该作者

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(369): error C2065: “name”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(585): error C2065: “ca_dn_cmp”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(585): error C2059: 语法错误:“<cv-qualifer>”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(628): error C2143: 语法错误: 缺少“{”(在“:”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(628): error C2059: 语法错误:“:”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(630): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(630): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(630): error C2143: 语法错误: 缺少“)”(在“?”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(630): error C2143: 语法错误: 缺少“{”(在“?”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\ssl\ssl_cert.c(630): error C2059: 语法错误:“?”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509v3\v3_purp.c(376): error C2065: “iname”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509v3\v3_purp.c(860): error C2065: “nm”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_x509.c(77): error C2146: 语法错误: 缺少“)”(在标识符“_it”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_x509.c(77): error C2101: 常量上的“&”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_x509.c(78): error C2059: 语法错误:“,”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(84): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(84): error C2143: 语法错误: 缺少“)”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(84): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(84): error C2143: 语法错误: 缺少“;”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(100): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(100): error C2143: 语法错误: 缺少“)”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(100): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(100): error C2143: 语法错误: 缺少“{”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(102): error C2079: “int_crl_meth”使用未定义的 struct“x509_crl_method_st”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(105): error C2065: “def_crl_lookup”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(107): error C2078: 初始值设定项太多

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(102): error C2078: 初始值设定项太多

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(139): error C2146: 语法错误: 缺少“)”(在标识符“_it”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(139): error C2101: 常量上的“&”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(295): error C2037: “crl_init”的左侧部分指定未定义的结构/联合“x509_crl_method_st”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(302): error C2037: “crl_free”的左侧部分指定未定义的结构/联合“x509_crl_method_st”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(392): error C2037: “crl_verify”的左侧部分指定未定义的结构/联合“x509_crl_method_st”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(400): error C2037: “crl_lookup”的左侧部分指定未定义的结构/联合“x509_crl_method_st”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(420): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(420): error C2143: 语法错误: 缺少“)”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(420): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x_crl.c(522): error C2037: “flags”的左侧部分指定未定义的结构/联合“x509_crl_method_st”

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509cset.c(75): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509cset.c(75): error C2143: 语法错误: 缺少“)”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509cset.c(75): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509cset.c(75): error C2143: 语法错误: 缺少“{”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509_vfy.c(1214): error C2065: “cnm”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509_vfy.c(1331): error C2065: “nm”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509_lu.c(129): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509_lu.c(129): error C2143: 语法错误: 缺少“)”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\x509_lu.c(129): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\by_dir.c(95): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\by_dir.c(95): error C2143: 语法错误: 缺少“)”(在“常量”的前面)

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\by_dir.c(95): error C2091: 函数返回函数

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\by_dir.c(104): error C2065: “get_cert_by_subject”: 未声明的标识符

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\by_dir.c(97): error C2099: 初始值设定项不是常量

1>d:\project\rosesdk\apps-src\apps\external\boringssl\crypto\x509\by_dir.c(256): error C2143: 语法错误: 缺少“)”(在“(”的前面)

1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(221): error C2011: “sockaddr”:“struct”类型重定义

1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(615): error C2011: “sockaddr_in”:“struct”类型重定义

1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(136): error C2011: “fd_set”:“struct”类型重定义

1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(1646): error C2375: “accept”: 重定义;不同的链接

1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(2407): error C2375: “WSASetLastError”: 重定义;不同的链接

1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(873): note: 参见“WSASetLastError”的声明
回复 支持 反对

使用道具 举报

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
板凳
发表于 2017-1-2 16:26:44 | 只看该作者
本帖最后由 ancientcc 于 2017-1-24 15:44 编辑

webrtc用了很多C++11语法,要编译必须是VS2015+update3或以后。以下摘自Rose-Cross-Platform-SDK.pdf

http://www.libsdl.cn/rose.php,这页的右上角可下载。
回复 支持 反对

使用道具 举报

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
地板
 楼主| 发表于 2017-1-2 17:50:50 | 只看该作者
本帖最后由 望江饥 于 2017-1-3 17:42 编辑

我只逛了逛论坛,真该仔细看看你写的pdf了。支持RoseSDK大范围使用C++11!

安装VS2015 Update3之后,依然报告上述同样错误,但是接下来我按照pdf文档中说的,将默认的Debug编译方式改为Release之后(并下载yasm.exe放到系统环境Path路径),一气呵成全部编译通过!
所以怀疑昨天在VS2015非Update3版本下,将Debug改为Release进行编译说不定也能成功?毕竟Update3安装包有7400MB,比4000MB整整大了3400MB。

吐槽下2015装一宿太慢,以前上班时同事装2015基本一下午不用干活了,看网上说新的VS2016安装快?下次在其它电脑上试试看,并记录RoseSDK所需最小离线安装勾选项。
回复 支持 反对

使用道具 举报

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
5#
发表于 2017-1-3 10:40:50 | 只看该作者
Visual Studio用得最频繁,Visaul Studio必须做到一键编译。

对编程,我首要注重的可能是易读,不主张用较深语法,像boost中泛型编程。对C++11,我非常喜欢std::unique_ptr。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|丽谷软件|libsdl.cn

GMT+8, 2025-5-2 00:31 , Processed in 0.049754 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表