【发布时间】: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_one
' 不可用 -
那么这不是构建失败的原因。这是一个警告。如果您搜索“隐式转换失去整数精度”,您将在该站点上获得无数示例,但它本身几乎是无害的 - 只是警告从更宽的 int 到更小的隐式转换,如果更大的数字可能会截断值不适合较小的类型(因此需要谨慎)。您可以
static_cast<socklen_t>()它(使转换显式)摆脱警告(除非 buflen 实际上可能很大,那么您需要添加检查)。 -
我发现了一个类似问题的问题:stackoverflow.com/questions/66189325/… 可能是 XCode12/react 错误,例如 github.com/facebook/react-native/issues/29633 。您可以尝试在那里报告问题并寻求帮助。
-
@DanM。感谢您的帮助。我会检查这些链接,希望能找到解决方案。
标签: c++ ios xcode react-native