R包AsioHeaders的链接问题

时间:2020-07-07 16:01:52

标签: rcpp asio

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

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

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

在我的代码中。因此,通常,在编译软件包时,链接应该没问题。

这是我在Linux上编译它的时间。但是,当尝试在Windows上进行编译时,出现了链接错误,这些错误可以通过链接-lws2_32-lwsock32来解决。

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

1 个答案:

答案 0 :(得分:2)

此处为AsioHeaders维护者。快速提问:

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

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

如果您的软件包确实是仅标头,那么LinkingTo:就足够了。 R将为您找到头目录。特别是,您不需要src/Makevars*中的链接说明,因为,仅标题即可。

此外,您可能在上面的C ++注释中用//表示正斜杠...