SingleR-inc / SingleR

Clone of the Bioconductor repository for the SingleR package.
https://bioconductor.org/packages/devel/bioc/html/SingleR.html
GNU General Public License v3.0
165 stars 19 forks source link

`error: call of overloaded 'XPtr(Rcpp::Vector<19>::Proxy)' is ambiguous` during installation. #232

Closed jxshi closed 1 year ago

jxshi commented 1 year ago

Hi,

SingleR is a great package in helping assigning cell types to each cluster. However, when I install SingleR 2.0 and Single R development version in R 4.2.2, it popped up error message:

integrate_build.cpp: In function 'SEXPREC* integrate_build(Rcpp::IntegerVector, Rcpp::List, Rcpp::List, Rcpp::List, Rcpp::List, int)':
integrate_build.cpp:29:42: error: call of overloaded 'XPtr(Rcpp::Vector<19>::Proxy)' is ambiguous
         PrebuiltXPtr curbuilt(prebuilt[r]);
                                          ^
In file included from /opt/R/R4.2.2/lib64/R/library/Rcpp/include/Rcpp.h:46,
                 from integrate_build.cpp:1:
/opt/R/R4.2.2/lib64/R/library/Rcpp/include/Rcpp/XPtr.h:113:5: note: candidate: 'Rcpp::XPtr<T, StoragePolicy, Finalizer, finalizeOnExit>::XPtr(const Rcpp::XPtr<T, StoragePolicy, Finalizer, finalizeOnExit>&) [with T = singlepp::BasicBuilder::Prebuilt; StoragePolicy = Rcpp::PreserveStorage; void (* Finalizer)(T*) = Rcpp::standard_delete_finalizer<singlepp::BasicBuilder::Prebuilt>; bool finalizeOnExit = false]'
     XPtr(const XPtr& other) {
     ^~~~
In file included from /opt/R/R4.2.2/lib64/R/library/Rcpp/include/Rcpp.h:46,
                 from integrate_build.cpp:1:
/opt/R/R4.2.2/lib64/R/library/Rcpp/include/Rcpp/XPtr.h:104:14: note: candidate: 'Rcpp::XPtr<T, StoragePolicy, Finalizer, finalizeOnExit>::XPtr(T*, bool, SEXP, SEXP) [with T = singlepp::BasicBuilder::Prebuilt; StoragePolicy = Rcpp::PreserveStorage; void (* Finalizer)(T*) = Rcpp::standard_delete_finalizer<singlepp::BasicBuilder::Prebuilt>; bool finalizeOnExit = false; SEXP = SEXPREC*]'
     explicit XPtr(T* p, bool set_delete_finalizer = true,
              ^~~~
/opt/R/R4.2.2/lib64/R/library/Rcpp/include/Rcpp/XPtr.h:78:14: note: candidate: 'Rcpp::XPtr<T, StoragePolicy, Finalizer, finalizeOnExit>::XPtr(SEXP) [with T = singlepp::BasicBuilder::Prebuilt; StoragePolicy = Rcpp::PreserveStorage; void (* Finalizer)(T*) = Rcpp::standard_delete_finalizer<singlepp::BasicBuilder::Prebuilt>; bool finalizeOnExit = false; SEXP = SEXPREC*]'
     explicit XPtr(SEXP x) { checked_set(x); };
              ^~~~
make: *** [/opt/R/R4.2.2/lib64/R/etc/Makeconf:178: integrate_build.o] Error 1
ERROR: compilation failed for package 'SingleR'
* removing '/opt/R/R4.2.2/lib64/R/library/SingleR'
* restoring previous '/opt/R/R4.2.2/lib64/R/library/SingleR'

sessionInfo() returns the following message:

R version 4.2.2 (2022-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS:   /opt/R/R4.2.2/lib64/R/lib/libRblas.so
LAPACK: /opt/R/R4.2.2/lib64/R/lib/libRlapack.so

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
 [1] processx_3.8.0      BiocManager_1.30.19 compiler_4.2.2
 [4] R6_2.5.1            rprojroot_2.0.3     cli_3.4.1
 [7] prettyunits_1.1.1   tools_4.2.2         withr_2.5.0
[10] curl_4.3.3          crayon_1.5.2        remotes_2.4.2
[13] callr_3.7.3         ps_1.7.2            pkgbuild_1.3.1

Can you check for me, please? Thank you! Jianxiang

LTLA commented 1 year ago

Works fine for me on my Linux machine and on the BioC build systems. Make sure you have the latest Rcpp installed.