Question: The failed compilation of Rsubread
0
gravatar for wangdp123
11 months ago by
wangdp123150
Oxford
wangdp123150 wrote:

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

rna-seq rsubread • 620 views
ADD COMMENTlink written 11 months ago by wangdp123150

Why is there chinese characters in your output ?

Try to install Rsubread using Bioclite

source("https://bioconductor.org/biocLite.R")
biocLite("Rsubread")
ADD REPLYlink modified 11 months ago • written 11 months ago by Bastien Hervé4.3k

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 REPLYlink written 11 months ago by wangdp123150

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

Try to update your R to 3.4.3

ADD REPLYlink written 11 months ago by Bastien Hervé4.3k

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 REPLYlink modified 11 months ago • written 11 months ago by wangdp123150

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

ADD REPLYlink written 11 months ago by Bastien Hervé4.3k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1665 users visited in the last hour