xcode构建失败隐式转换失去整数精度:'size_t'(又名'unsigned long')到'socklen_t'(又名'unsigned int')
Posted
技术标签:
【中文标题】xcode构建失败隐式转换失去整数精度:\'size_t\'(又名\'unsigned long\')到\'socklen_t\'(又名\'unsigned int\')【英文标题】:xcode build failing over Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'socklen_t' (aka 'unsigned int')xcode构建失败隐式转换失去整数精度:'size_t'(又名'unsigned long')到'socklen_t'(又名'unsigned int') 【发布时间】:2021-02-16 12:49:08 【问题描述】:这是我第一次在这里发帖,我也是 mac、xcode(12) 和 react native 的新手。即使是空的反应原生项目,我也无法使构建成功。我试图在模拟器版本之间切换并不断收到不同的错误,但总是使用 Flipper-Folly。 这发生在模拟器版本 14.3 中,在文件 SocketAddress.ccp 中:
sockaddr_storage tmp_sock;
storage_.addr.toSockaddrStorage(&tmp_sock, port_);
int rc = getnameinfo(
(sockaddr*)&tmp_sock,
sizeof(sockaddr_storage),
buf,
buflen, //this is where the error is: Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'socklen_t' (aka 'unsigned int')
nullptr,
0,
flags);
if (rc != 0)
auto os = sformat(
"getnameinfo() failed in getIpString() error = ", gai_strerror(rc));
throw std::system_error(rc, std::generic_category(), os);
作为一个新手前端开发人员,我真的不知道我在看什么,任何帮助将不胜感激!
【问题讨论】:
这听起来像是警告,而不是错误。您是否使用将警告视为错误选项进行构建?另外,它的哪一部分让你感到困惑?它只是抱怨不同的类型(buflen 比预期的“大”)。 @DanM。我没有将警告视为错误来构建。让我感到困惑的部分就是全部。如前所述,我是新手。我所知道的是构建失败,当我单击错误图标查看它时,这就是它引导我的地方。现在我又看了看,只有当我查看左侧的列表时,我才看到实际的错误图标,这就是它所说的:/Users/Dana/Desktop/trial/ios/Pods/Headers/Private/Flipper- Folly/folly/synchronization/DistributedMutex-inl.h:1051:5: 'atomic_notify_onestatic_cast<socklen_t>()
它(使转换显式)摆脱警告(除非 buflen 实际上可能很大,那么您需要添加检查)。
我发现了一个类似问题的问题:***.com/questions/66189325/… 可能是 XCode12/react 错误,例如 github.com/facebook/react-native/issues/29633 。您可以尝试在那里报告问题并寻求帮助。
@DanM。感谢您的帮助。我会检查这些链接,希望能找到解决方案。
【参考方案1】:
我能够摆脱这个问题的唯一方法是在 Podfile 中禁用翻转器
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
# use_flipper!
# post_install do |installer|
# flipper_post_install(installer)
# end
end
【讨论】:
以上是关于xcode构建失败隐式转换失去整数精度:'size_t'(又名'unsigned long')到'socklen_t'(又名'unsigned int')的主要内容,如果未能解决你的问题,请参考以下文章
为啥Java在使用“加号”运算符时会执行从双精度到整数的隐式类型转换? [复制]
升级 JDBC 驱动程序后,Postgres 中到整数的隐式类型转换失败