gpertea / gffread

GFF/GTF utility providing format conversions, region filtering, FASTA sequence extraction and more
MIT License
378 stars 39 forks source link

Installation Failure #96

Open Botantisty opened 2 years ago

Botantisty commented 2 years ago

Hello,

I am trying to install gffread in cluster environment (Rocks Compute Node Rocks 7.0 (Manzanita) ) following the directions on the git page. However, I receive error 1 from make. Guidance on how to solve this issue would be appreciated.

Thanks.

git clone https://github.com/gpertea/gffread
cd gffread
make release
(base) [botantisty@biocomp-0-1 gffread]$ make release
.../miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -O3 -DNDEBUG -Wall -Wextra -std=c++11 -I. -I../gclib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_REENTRANT -fno-strict-aliasing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -c gff_utils.cpp -o gff_utils.o
In file included from gff_utils.cpp:1:0:
gff_utils.h:92:8: error: 'GRangeParser' does not name a type
 extern GRangeParser* fltRange;
        ^~~~~~~~~~~~
gff_utils.h:94:8: error: 'GRangeParser' does not name a type
 extern GRangeParser* fltJunction;
        ^~~~~~~~~~~~
gff_utils.cpp:50:1: error: 'GRangeParser' does not name a type
 GRangeParser* fltRange=NULL;
 ^~~~~~~~~~~~
gff_utils.cpp:52:1: error: 'GRangeParser' does not name a type
 GRangeParser* fltJunction=NULL;
 ^~~~~~~~~~~~
gff_utils.cpp: In member function 'bool GffLoader::checkFilters(GffObj*)':
gff_utils.cpp:435:6: error: 'fltRange' was not declared in this scope
  if (fltRange!=NULL) { //filter by gseqName
      ^~~~~~~~
gff_utils.cpp:435:6: note: suggested alternative: 'fmtTable'
  if (fltRange!=NULL) { //filter by gseqName
      ^~~~~~~~
      fmtTable
gff_utils.cpp:458:11: error: 'class GffObj' has no member named 'removeAttrs'; did you mean 'removeAttr'?
   gffrec->removeAttrs(attrList);
           ^~~~~~~~~~~
           removeAttr
gff_utils.cpp:469:7: error: 'fltJunction' was not declared in this scope
   if (fltJunction!=NULL) {
       ^~~~~~~~~~~
gff_utils.cpp: In member function 'bool GffLoader::process_transcript(GFastaDb&, GffObj&)':
gff_utils.cpp:757:15: error: 'class GffObj' has no member named 'printAttrs'; did you mean 'parseAttrs'?
        gffrec.printAttrs(f_y, ";", false, decodeChars, false);
               ^~~~~~~~~~
               parseAttrs
gff_utils.cpp:768:13: error: 'class GffObj' has no member named 'printAttrs'; did you mean 'parseAttrs'?
      gffrec.printAttrs(f_x, ";", false, decodeChars, false);
             ^~~~~~~~~~
             parseAttrs
gff_utils.cpp:834:15: error: 'class GffObj' has no member named 'printAttrs'; did you mean 'parseAttrs'?
        gffrec.printAttrs(f_w, ";", false, decodeChars, false);
               ^~~~~~~~~~
               parseAttrs
gff_utils.cpp: In member function 'void GffLoader::load(GList<GenomicSeqData>&, void (*)(const char*, GfList*))':
gff_utils.cpp:1449:8: error: 'class GffReader' has no member named 'procEnsemblID'
  gffr->procEnsemblID(this->ensemblProc);
        ^~~~~~~~~~~~~
make: *** [Makefile:72: gff_utils.o] Error 1
wlkath commented 2 years ago

I had the same problem, which was apparently due to an older ../gclib being already installed. The instructions say

Building this program from source requires the GCLib source code library. The make command should automatically fetch the latest gclib version from the repository if no ../gclib directory is found.

The old ../gclib stopped the automatic fetch, and the old gclib files don't have the correct definitions, so the compile failed. Removing the old ../gclib folder allowed the automatic fetch to do its work and the compile completed.

DaRinker commented 2 years ago

Thank you for @wlkath !!