与 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 维护者。快速提问:
哪个版本的AsioHeaders?它刚刚在 CRAN 更新。这是新版本的变化吗(这会让我感到惊讶...)?
确保您没有意外使用 Boost 的 Asio 功能,这将需要 linking。查看使用 AsioHeaders 的三个包。
如果您的包裹确实是header-only那么LinkingTo:
就是您所需要的。 R 将为您找到 header 目录。特别是,您不需要 src/Makevars*
中的 link 指令,因为 header-only.
另外,您的 C++ 注释可能是 //
正斜杠...
我在 Rcpp 包中使用 Asio,因此我使用 AsioHeaders 包。
我在我的包的 DESCRIPTION 文件的“LinkingTo”部分添加了 BH 和 AsioHeaders。我也添加了评论
// [[Rcpp::depends(BH)]]
// [[Rcpp::depends(AsioHeaders)]]
在我的代码中。所以通常情况下,编译包时链接应该没问题。
而且是在Linux上编译的时候。但是当试图在 Windows 上编译它时,我得到了链接错误,这些错误通过链接 -lws2_32
和 -lwsock32
.
因此我想知道,我是否应该编辑 Makevars
文件,以便它们在 Windows 上链接但在 Linux 上被忽略,或者如果我使用 AsioHeaders 做错了什么?
这里是 AsioHeaders 维护者。快速提问:
哪个版本的AsioHeaders?它刚刚在 CRAN 更新。这是新版本的变化吗(这会让我感到惊讶...)?
确保您没有意外使用 Boost 的 Asio 功能,这将需要 linking。查看使用 AsioHeaders 的三个包。
如果您的包裹确实是header-only那么LinkingTo:
就是您所需要的。 R 将为您找到 header 目录。特别是,您不需要 src/Makevars*
中的 link 指令,因为 header-only.
另外,您的 C++ 注释可能是 //
正斜杠...