Rcpp未加载增压/asio.hpp

Rcpp未加载增压/asio.hpp,r,linux,boost,rcpp,R,Linux,Boost,Rcpp,我想包括boost库中的一些功能。但是当包含#包含时,文件将不会编译,请参见我的示例: // [[Rcpp::depends(BH)]] #include <Rcpp.h> #include <boost/asio.hpp> // [[Rcpp::export]] int main() { return 0; } 我也在Windows10上试过了,加载也是不可能的 通过g++进行编译时,所有工作正常: // test.cpp #include <boost

我想包括
boost
库中的一些功能。但是当包含
#包含
时,文件将不会编译,请参见我的示例:

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

#include <Rcpp.h>
#include <boost/asio.hpp>

// [[Rcpp::export]]
int main()
{
  return 0;
}
我也在Windows10上试过了,加载也是不可能的

通过g++进行编译时,所有工作正常:

// test.cpp
#include <boost/asio.hpp>

int main()
{
  return 0;
}
//test.cpp
#包括
int main()
{
返回0;
}

是的,就是这样。让我解释一下,并继续读下去,因为有一个解决方案

包裹 此包仅为标题。没有链接。这样,您(作为软件包作者或用户)就不必麻烦
-lboost_系统
,这很快就会成为跨系统的难题

等等,什么? 对。这只是标题。因此不包括所有的Boost,因为没有链接也不能得到所有的Boost。例如,没有Asio

再说一遍?没有Asio? 对。标准的Boost构建需要Asio与链接。这与我们的做法是不相容的

悲哀的
不要害怕。在某种程度上,我发现Asio的作者也用第二种方式捆绑它,只使用头。因此,只需使用我的CRAN软件包即可。

谢谢您的解释!我以前从未听说过AsioHeaders的套装。所以我很高兴能使用它。当然。(我猜你知道你的
main.cpp
不会工作,因为Rcpp不是这样工作的,对吧?)Jap,我已经和Rcpp一起工作过,并且尽可能多地删除它来创建MWE。这也是
boost/system/system\u error.hpp的情况吗?我不知道。也许你需要重新阅读关于“仅标题”的部分,或者学习。如果您坚持链接,请提供一个库。在所有OSs上。更多的工作。你的电话。
// test.cpp
#include <boost/asio.hpp>

int main()
{
  return 0;
}