This is a test version of Biostars. For the public version, visit https://www.biostars.org.
The failed compilation of Rsubread

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

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’

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?

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

0 answers

No answers yet.

Log in to answer this question.