The failed compilation of Rsubread
0
0
Entering edit mode
3.3 years ago
wangdp123 ▴ 250

Hi there,

Rsubread package is really a good one but unfortunately, I cannot make it through when trying to install it. Would you like to help me out?

The command line is:

R CMD INSTALL folder/R_package/Rsubread_1.22.0.tar.gz


* installing to library ?folder/R-3.3.0/R-3.3.0/lib64/R/library?
* installing *source* package 釸subread?...
@@@@@ The operating system is Linux.
** libs
gcc -Ifolder/R-3.3.0/R-3.3.0/lib64/R/include -DNDEBUG
-I/usr/local/include   -DMAKE_FOR_EXON -D SUBREAD_VERSION="\"Rsubread
1.22.0\"" -fpic  -g -O2 -std=c99  -c HelperFunctions.c -o
HelperFunctions.o
HelperFunctions.c: In function 鈓ac_str?
HelperFunctions.c:820:18: error: storage size of 鈏fr?isn鈚 known
     struct ifreq ifr;
                  ^
HelperFunctions.c:821:19: error: storage size of 鈏fc?isn鈚 known
     struct ifconf ifc;
                   ^
HelperFunctions.c:833:64: error: invalid application of 鈙izeof?to
incomplete type 鈙truct ifreq?
     const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq));
                                                                ^
HelperFunctions.c:835:23: error: increment of pointer to unknown structure
     for (; it != end; ++it) {
                       ^
HelperFunctions.c:835:5: error: arithmetic on pointer to an incomplete type
     for (; it != end; ++it) {
     ^
HelperFunctions.c:836:32: error: dereferencing pointer to incomplete type
         strcpy(ifr.ifr_name, it->ifr_name);
                                ^
HelperFunctions.c:838:36: error: 釯FF_LOOPBACK?undeclared (first use in
this function)
             if (! (ifr.ifr_flags & IFF_LOOPBACK)) { // don't count loopback
                                    ^
HelperFunctions.c:838:36: note: each undeclared identifier is reported
only once for each function it appears in
make: *** [HelperFunctions.o] Error 1
ERROR: compilation failed for package 釸subread?
* removing ?folder/R-3.3.0/R-3.3.0/lib64/R/library/Rsubread?

gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)

icc --version
icc (ICC) 17.0.1 20161005

Thank you very much for your help,

With best wishes,

Tom

Rsubread RNA-Seq • 1.6k views
ADD COMMENT
0
Entering edit mode

Why is there chinese characters in your output ?

Try to install Rsubread using Bioclite

source("https://bioconductor.org/biocLite.R")
biocLite("Rsubread")
ADD REPLY
0
Entering edit mode

Thanks for the reply.

I have tried this approach but still got bad luck.

> biocLite("Rsubread")
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.3 (BiocInstaller 1.22.3), R 3.3.0 (2016-05-03).
Installing package(s) ‘Rsubread’
trying URL 'https://bioconductor.org/packages/3.3/bioc/src/contrib/Rsubread_1.22.3.tar.gz'
Content type 'unknown' length 9250927 bytes (8.8 MB)
==================================================
downloaded 8.8 MB

* installing *source* package ‘Rsubread’ ...
@@@@@ The operating system is Linux.
** libs
icc -std=gnu99 -Ifolder/R-3.3.0/R-3.3.0/lib64/R/include -DNDEBUG  -I/usr/local/include   -DMAKE_FOR_EXON -D SUBREAD_VERSION="\"Rsubread 1.22.3\"" -fpic  -g -O2 -std=c99  -c HelperFunctions.c -o HelperFunctions.o
HelperFunctions.c(821): error: incomplete type is not allowed
      struct ifreq ifr;
                   ^

HelperFunctions.c(822): error: incomplete type is not allowed
      struct ifconf ifc;
                    ^

HelperFunctions.c(834): error: incomplete type is not allowed
      const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq));
                                                                 ^

HelperFunctions.c(836): error: expression must be a pointer to a complete object type
      for (; it != end; ++it) {
                          ^

HelperFunctions.c(837): error: pointer to incomplete class type is not allowed
          strcpy(ifr.ifr_name, it->ifr_name);
                               ^

HelperFunctions.c(839): error: identifier "IFF_LOOPBACK" is undefined
              if (! (ifr.ifr_flags & IFF_LOOPBACK)) { // don't count loopback
                                     ^

compilation aborted for HelperFunctions.c (code 2)
make: *** [HelperFunctions.o] Error 2
ERROR: compilation failed for package ‘Rsubread’
* removing ‘folder/R-3.3.0/R-3.3.0/lib64/R/library/Rsubread’
ADD REPLY
0
Entering edit mode

I found this thread, really close to yours https://support.bioconductor.org/p/107790/

Try to update your R to 3.4.3

ADD REPLY
0
Entering edit mode

I have tried updating R to the latest version R-3.5.1 but it still reported the error.

I am thinking about if it is caused by the gcc compiler version incompitability?

ADD REPLY
0
Entering edit mode

I don't think that Subread accept icc as compiler. Maybe upgrade gcc and compile Subread with it

ADD REPLY

Login before adding your answer.

Traffic: 1470 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6