2016-07-11 2 views
0

Je souhaite compiler le paquet hsphase (paquet R disponible dans CRAN).Erreur de compilation du paquet R

J'ai utilisé cette commande dans R install.packages("hsphase").

J'ai les erreurs suivantes:

g++ -m64 -shared -L/usr/lib64/R/lib -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o hsphase.so FastDist.o MAF.o Ohd.o TypeConversion.o block.o block4Phase.o co.o diag.o hsp.o main.o memory.o oh.o swDetect.o [1] 0 -L/usr/lib64/R/lib -lRlapack -L/usr/lib64/R/lib -lRblas -lgfortran -lm -lquadmath -fopenmp -L/usr/lib64/R/lib -lR 
g++: error: [1]: No such file or directory 
g++: error: 0: No such file or directory 
/usr/share/R/make/shlib.mk:6: recipe for target 'hsphase.so' failed 
make: *** [hsphase.so] Error 1 
ERROR: compilation failed for package ‘hsphase’ 
* removing ‘/home/mhf/R/x86_64-redhat-linux-gnu-library/3.3/hsphase’ 

The downloaded source packages are in 
    ‘/tmp/RtmpYukJQa/downloaded_packages’ 
Warning message: 
In install.packages("hsphase") : 
    installation of package ‘hsphase’ had non-zero exit status 

J'utilise fedora 24.

Le g ++ version: gcc version 6.1.1 20.160.621 (Red Hat 6.1.1-3) (GCC)

S'il vous plaît vérifier le lien drapeau: ce qui est ceci: [1] 0

+0

Le g ++ est là. Il y a une erreur de liaison. – user1436187

+0

J'ai eu un problème similaire en installant un autre paquet R, et plus tard trouvé que certaines des dépendances pour le paquet requis manquaient, essayez 'install.packages (" hsphase ", dépendances = TRUE)' –

+1

Vous semblez manquer un système- dépendance de niveau; des lignes comme celle-ci - '-specs =/usr/lib/rpm/redhat/redhat-hardened-ld' - sont un bon indice. Voir [cette question] (http://stackoverflow.com/questions/34624428/g-error-usr-lib-rpm-redhat-redhat-hardened-cc1-no-that-file-and-directory). – nrussell

Répondre

0

Je commenter cette ligne dans le fichier scr/Makevars:

#PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) $(SHLIB_OPENMP_CXXFLAGS) 

Maintenant, je peux compiler le paquet.