与 R 包 AsioHeaders 的链接问题

Linking problem with R package AsioHeaders

我在 Rcpp 包中使用 Asio,因此我使用 AsioHeaders 包。

我在我的包的 DESCRIPTION 文件的“LinkingTo”部分添加了 BH 和 AsioHeaders。我也添加了评论

// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(AsioHeaders)]]

在我的代码中。所以通常情况下,编译包时链接应该没问题。

而且是在Linux上编译的时候。但是当试图在 Windows 上编译它时,我得到了链接错误,这些错误通过链接 -lws2_32-lwsock32.

解决了

因此我想知道,我是否应该编辑 Makevars 文件,以便它们在 Windows 上链接但在 Linux 上被忽略,或者如果我使用 AsioHeaders 做错了什么?

这里是 AsioHeaders 维护者。快速提问:

  1. 哪个版本的AsioHeaders?它刚刚在 CRAN 更新。这是新版本的变化吗(这会让我感到惊讶...)?

  2. 确保您没有意外使用 Boost 的 Asio 功能,这将需要 linking。查看使用 AsioHeaders 的三个包。

如果您的包裹确实是header-only那么LinkingTo:就是您所需要的。 R 将为您找到 header 目录。特别是,您不需要 src/Makevars* 中的 link 指令,因为 header-only.

另外,您的 C++ 注释可能是 // 正斜杠...