如何消除警告:Rcpp/DataFrame.h:136:18: 警告未使用的变量 'data'?

4

我使用RcppArmadillo从我的Mac创建了一个R包,然后通过以下步骤构建和安装它:

Rcpp::compileAttributes()
devtools::build()
devtools::install()

然而,我收到了几个与下面相同的警告:

clang++ -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.6/Resources/library/RcppArmadillo/include" -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include  -fopenmp  -fPIC  -Wall -g -O2  -c RcppExports.cpp -o RcppExports.o
In file included from RcppExports.cpp:4:
In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/RcppArmadillo/include/RcppArmadillo.h:34:
In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp.h:57:
/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/DataFrame.h:136:18: warning: unused variable 'data' [-Wunused-variable]
            SEXP data = Parent::get__();
                 ^
1 warning generated.

虽然安装过程中有警告,但该软件包仍可正常使用。是否有人知道如何消除这些警告?

(我尝试了这里的回答:Rcpp中的未使用变量错误,但我仍然收到警告。)

1个回答

3

我之前的(通用)StackOverflow答案(你在问题中已经引用过了)仍然有效:将标志添加到CXXFLAGS(可能还有CXX11FLAGS)中。

或者,您可以通过Rcpp Drat存储库安装更新的Rcpp版本

install.packages("Rcpp", repos="https://rcppcore.github.io/drat")

为了获得包含这些修复和其他新版本的Rcpp版本,这些修复最终将被整合到CRAN版本中。
编辑:这里是与Rcpp邮件列表相关的公告链接。

非常感谢!CXX11FLAGS解决了这个问题。 - Olivia
不客气!R本身控制这些内容,对于设置为CXXFLAGS的值不会自动升级到CXX11FLAGS(以及C++14、C++17等)。但至少现在你知道了 :) 当然,“警告”只是“警告”,尽管它们很烦人。如果你非常自信你所做的事情,你也可以……编辑头文件 :) - Dirk Eddelbuettel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接