无法使用较新版本的 Rcpp 构建名称中带有点的包
Cannot build package with dot in the name with newer version of Rcpp
自从我将我的 Rcpp
版本更新为 0.12.11
(我测试它适用于 0.12.10
)我不能再构建我的包了。
实际上无法从 RStudio
创建一个名为 dot.test
的新包。
Updating dot.test documentation
Loading dot.test
Re-compiling dot.test
'/usr/lib64/R/bin/R' --no-site-file --no-environ --no-save --no-restore \
--quiet CMD INSTALL '/pxfs/data/statquant/public/dot.test' \
--library='/tmp/RtmpZARXxv/devtools_install_1ef63ab8fde6' --no-R --no-data \
--no-help --no-demo --no-inst --no-docs --no-exec --no-multiarch \
--no-test-load
* installing *source* package ‘dot.test’ ...
** libs
g++ -m64 -I/usr/include/R -DNDEBUG -I/usr/local/include -I"/lxhome/statquant/R/x86_64-redhat-linux-gnu-library/3.3/Rcpp/include" -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c RcppExports.cpp -o RcppExports.o
RcppExports.cpp:20:46: error: ‘dot’ was not declared in this scope
{"dot.test_rcpp_hello_world", (DL_FUNC) &dot.test_rcpp_hello_world, 0},
^
R> sessionInfo()
R version 3.3.0 (2016-05-03)
Platform: x86_64-redhat-linux-gnu (64-bit)
[...]
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.3.0
R> system('which g++')
/opt/rh/devtoolset-3/root/usr/bin/g++
R> system('g++ --version')
g++ (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
如果可以理解 C++
和带有 .
的包名称可能会提出问题 它没有被明确禁止(据我所知)。
有很多像 data.table
这样的包在名称中有一个点
那么我的问题是:
- 我是否错过了 R-core 的明确规则?
- 在名称中做一个
.
意味着我不能再使用 Rcpp::compileAttributes
了?
- 是否有快速修复程序可以让我构建并仍然使用
Rcpp>0.12.10
?
这是 Kirill 前几天(亲自)向我报告的一个错误,现在已在 GitHub 上提交...并且应该得到修复 "soon"。
查看 https://github.com/RcppCore/Rcpp/issues/721 了解更多信息和进度。
目前,快速修复是使用手动编辑的 src/init.c
,直到 compileAttributes()
得到修复。
自从我将我的 Rcpp
版本更新为 0.12.11
(我测试它适用于 0.12.10
)我不能再构建我的包了。
实际上无法从 RStudio
创建一个名为 dot.test
的新包。
Updating dot.test documentation
Loading dot.test
Re-compiling dot.test
'/usr/lib64/R/bin/R' --no-site-file --no-environ --no-save --no-restore \
--quiet CMD INSTALL '/pxfs/data/statquant/public/dot.test' \
--library='/tmp/RtmpZARXxv/devtools_install_1ef63ab8fde6' --no-R --no-data \
--no-help --no-demo --no-inst --no-docs --no-exec --no-multiarch \
--no-test-load
* installing *source* package ‘dot.test’ ...
** libs
g++ -m64 -I/usr/include/R -DNDEBUG -I/usr/local/include -I"/lxhome/statquant/R/x86_64-redhat-linux-gnu-library/3.3/Rcpp/include" -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c RcppExports.cpp -o RcppExports.o
RcppExports.cpp:20:46: error: ‘dot’ was not declared in this scope
{"dot.test_rcpp_hello_world", (DL_FUNC) &dot.test_rcpp_hello_world, 0},
^
R> sessionInfo()
R version 3.3.0 (2016-05-03)
Platform: x86_64-redhat-linux-gnu (64-bit)
[...]
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.3.0
R> system('which g++')
/opt/rh/devtoolset-3/root/usr/bin/g++
R> system('g++ --version')
g++ (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
如果可以理解 C++
和带有 .
的包名称可能会提出问题 它没有被明确禁止(据我所知)。
有很多像 data.table
这样的包在名称中有一个点
那么我的问题是:
- 我是否错过了 R-core 的明确规则?
- 在名称中做一个
.
意味着我不能再使用Rcpp::compileAttributes
了? - 是否有快速修复程序可以让我构建并仍然使用
Rcpp>0.12.10
?
这是 Kirill 前几天(亲自)向我报告的一个错误,现在已在 GitHub 上提交...并且应该得到修复 "soon"。
查看 https://github.com/RcppCore/Rcpp/issues/721 了解更多信息和进度。
目前,快速修复是使用手动编辑的 src/init.c
,直到 compileAttributes()
得到修复。