Gaius-Augustus / Augustus

Genome annotation with AUGUSTUS
http://bioinf.uni-greifswald.de/webaugustus/
272 stars 107 forks source link

mysql compilation error #396

Open francicco opened 1 year ago

francicco commented 1 year ago

Hi,

I'm trying to compile the new augustus version 3.5.0.

this is the error the make output:

mkdir -p bin
cd src && make
make[1]: Entering directory `/user/work/tk19812/software/Augustus-3.5.0/src'
g++ -DZIPINPUT -DCOMPGENEPRED -DTESTING -DM_MYSQL -DM_SQLITE -Wall -Wno-sign-compare -pedantic -O3 -std=c++11      -L/user/work/tk19812/software/Augustus-3.5.0 -L/usr/include/mysql -L/usr/lib64/mysql   -I../include -I/usr/include/lpsolve    -I/usr/include/mysql -I/usr/lib64/mysql     -o augustus augustus.cc genbank.o properties.o pp_profile.o pp_hitseq.o pp_scoring.o statemodel.o namgene.o types.o gene.o evaluation.o motif.o geneticcode.o hints.o extrinsicinfo.o projectio.o intronmodel.o exonmodel.o igenicmodel.o utrmodel.o merkmal.o vitmatrix.o lldouble.o mea.o graph.o meaPath.o exoncand.o randseqaccess.o fasta.o ncmodel.o parser/parse.o scanner/lex.o genomicMSA.o geneMSA.o contTimeMC.o codonevo.o compgenepred.o phylotree.o orthograph.o orthoexon.o alignment.o speciesgraph.o codonMSA.o train_logReg_param.o tokenizer.o sqliteDB.o dummy.o -lboost_iostreams -lgsl -lgslcblas  -llpsolve55 -lcolamd -ldl  -lboost_serialization  -lmysqlclient -lmysqlpp -lsqlite3
randseqaccess.o: In function `MysqlAccess::getSeq(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, Strand)':
randseqaccess.cc:(.text+0x6c39): undefined reference to `mysqlpp::Query::str[abi:cxx11](mysqlpp::SQLQueryParms&)'
randseqaccess.cc:(.text+0x6c8d): undefined reference to `mysqlpp::Query::str[abi:cxx11](mysqlpp::SQLQueryParms&)'
randseqaccess.cc:(.text+0x6ca4): undefined reference to `mysqlpp::SQLTypeAdapter::SQLTypeAdapter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
randseqaccess.o: In function `MysqlAccess::getFeatures(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, Strand)':
randseqaccess.cc:(.text+0x7d9c): undefined reference to `mysqlpp::Query::str[abi:cxx11](mysqlpp::SQLQueryParms&)'
randseqaccess.cc:(.text+0x7db0): undefined reference to `mysqlpp::SQLTypeAdapter::SQLTypeAdapter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
randseqaccess.o: In function `void populate_genomes<(mysqlpp::sql_dummy_type)0>(genomes*, mysqlpp::Row const&)':
randseqaccess.cc:(.text._Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE[_Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE]+0x7a): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const'
randseqaccess.cc:(.text._Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE[_Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE]+0xe7): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const'
randseqaccess.cc:(.text._Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE[_Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE]+0x1a5): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const'
randseqaccess.o: In function `void populate_hints<(mysqlpp::sql_dummy_type)0>(hints*, mysqlpp::Row const&)':
randseqaccess.cc:(.text._Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE[_Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE]+0xd7): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const'
randseqaccess.cc:(.text._Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE[_Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE]+0x1fa): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const'
randseqaccess.o:randseqaccess.cc:(.text._Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE[_Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE]+0x280): more undefined references to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const' follow
randseqaccess.o: In function `int MysqlAccess::get_region_coord<assembly>(int, int, int, std::vector<assembly, std::allocator<assembly> >&)':
randseqaccess.cc:(.text._ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE[_ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE]+0xc7): undefined reference to `mysqlpp::Query::str[abi:cxx11](mysqlpp::SQLQueryParms&)'
randseqaccess.cc:(.text._ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE[_ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE]+0xd8): undefined reference to `mysqlpp::SQLTypeAdapter::SQLTypeAdapter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
collect2: error: ld returned 1 exit status
make[1]: *** [augustus] Error 1
make[1]: Leaving directory `/user/work/tk19812/software/Augustus-3.5.0/src'
make: *** [augustus] Error 2

There is a problem linking at the mysql libraries I guess. I tried to fix it but no luck. Any tip?

Cheers F

KatharinaHoff commented 1 year ago

I assume that you are updating Augustus for single-species gene prediction, not for running Augustus-CGP. In this case, edit the file common.mk and set compgenepred=false. I hope that Augustus then won't ask for mysql. Run make clean, and then make, again.

On Fri, Jun 23, 2023 at 1:55 PM Francesco Cicconardi < @.***> wrote:

Hi,

I'm trying to compile the new augustus version 3.5.0.

this is the error the make output:

mkdir -p bin cd src && make make[1]: Entering directory /user/work/tk19812/software/Augustus-3.5.0/src' g++ -DZIPINPUT -DCOMPGENEPRED -DTESTING -DM_MYSQL -DM_SQLITE -Wall -Wno-sign-compare -pedantic -O3 -std=c++11 -L/user/work/tk19812/software/Augustus-3.5.0 -L/usr/include/mysql -L/usr/lib64/mysql -I../include -I/usr/include/lpsolve -I/usr/include/mysql -I/usr/lib64/mysql -o augustus augustus.cc genbank.o properties.o pp_profile.o pp_hitseq.o pp_scoring.o statemodel.o namgene.o types.o gene.o evaluation.o motif.o geneticcode.o hints.o extrinsicinfo.o projectio.o intronmodel.o exonmodel.o igenicmodel.o utrmodel.o merkmal.o vitmatrix.o lldouble.o mea.o graph.o meaPath.o exoncand.o randseqaccess.o fasta.o ncmodel.o parser/parse.o scanner/lex.o genomicMSA.o geneMSA.o contTimeMC.o codonevo.o compgenepred.o phylotree.o orthograph.o orthoexon.o alignment.o speciesgraph.o codonMSA.o train_logReg_param.o tokenizer.o sqliteDB.o dummy.o -lboost_iostreams -lgsl -lgslcblas -llpsolve55 -lcolamd -ldl -lboost_serialization -lmysqlclient -lmysqlpp -lsqlite3 randseqaccess.o: In functionMysqlAccess::getSeq(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >, int, int, Strand)': randseqaccess.cc:(.text+0x6c39): undefined reference to mysqlpp::Query::str[abi:cxx11](mysqlpp::SQLQueryParms&)' randseqaccess.cc:(.text+0x6c8d): undefined reference tomysqlpp::Query::strabi:cxx11' randseqaccess.cc:(.text+0x6ca4): undefined reference to mysqlpp::SQLTypeAdapter::SQLTypeAdapter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' randseqaccess.o: In functionMysqlAccess::getFeatures(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >, int, int, Strand)': randseqaccess.cc:(.text+0x7d9c): undefined reference to mysqlpp::Query::str[abi:cxx11](mysqlpp::SQLQueryParms&)' randseqaccess.cc:(.text+0x7db0): undefined reference tomysqlpp::SQLTypeAdapter::SQLTypeAdapter(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool)' randseqaccess.o: In function void populate_genomes<(mysqlpp::sql_dummy_type)0>(genomes*, mysqlpp::Row const&)': randseqaccess.cc:(.text._Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE[_Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE]+0x7a): undefined reference tostd::cxx11::basic_string<char, std::char_traits, std::allocator > mysqlpp::String::conv<std::cxx11::basic_string<char, std::char_traits, std::allocator > >(std::cxx11::basic_string<char, std::char_traits, std::allocator >) const' randseqaccess.cc:(.text._Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE[_Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE]+0xe7): undefined reference to `std::cxx11::basic_string<char, std::char_traits, std::allocator > mysqlpp::String::conv<std::cxx11::basic_string<char, std::char_traits, std::allocator > >(std::cxx11::basic_string<char, std::char_traits, std::allocator >) const' randseqaccess.cc:(.text._Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE[_Z16populate_genomesILN7mysqlpp14sql_dummy_typeE0EEvP7genomesRKNS0_3RowE]+0x1a5): undefined reference to std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const' randseqaccess.o: In functionvoid populate_hints<(mysqlpp::sql_dummy_type)0>(hints*, mysqlpp::Row const&)': randseqaccess.cc:(.text._Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE[_Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE]+0xd7): undefined reference to `std::cxx11::basic_string<char, std::char_traits, std::allocator > mysqlpp::String::conv<std::cxx11::basic_string<char, std::char_traits, std::allocator > >(std::cxx11::basic_string<char, std::char_traits, std::allocator >) const' randseqaccess.cc:(.text._Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE[_Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE]+0x1fa): undefined reference to std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mysqlpp::String::conv<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const' randseqaccess.o:randseqaccess.cc:(.text._Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE[_Z14populate_hintsILN7mysqlpp14sql_dummy_typeE0EEvP5hintsRKNS0_3RowE]+0x280): more undefined references tostd::cxx11::basic_string<char, std::char_traits, std::allocator > mysqlpp::String::conv<std::cxx11::basic_string<char, std::char_traits, std::allocator > >(std::cxx11::basic_string<char, std::char_traits, std::allocator >) const' follow randseqaccess.o: In function int MysqlAccess::get_region_coord<assembly>(int, int, int, std::vector<assembly, std::allocator<assembly> >&)': randseqaccess.cc:(.text._ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE[_ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE]+0xc7): undefined reference tomysqlpp::Query::strabi:cxx11' randseqaccess.cc:(.text._ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE[_ZN11MysqlAccess16get_region_coordI8assemblyEEiiiiRSt6vectorIT_SaIS3_EE]+0xd8): undefined reference to `mysqlpp::SQLTypeAdapter::SQLTypeAdapter(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool)' collect2: error: ld returned 1 exit status make[1]: [augustus] Error 1 make[1]: Leaving directory `/user/work/tk19812/software/Augustus-3.5.0/src' make: [augustus] Error 2

There is a problem linking at the mysql libraries I guess. I tried to fix it but no luck. Any tip?

Cheers F

— Reply to this email directly, view it on GitHub https://github.com/Gaius-Augustus/Augustus/issues/396, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJMC6JFMCIUFB7Y4U3UAOZDXMV7ZJANCNFSM6AAAAAAZRO47LA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

francicco commented 1 year ago

Yes, but I'd like to try Augustus-CGP for other projects... :( F

francicco commented 1 year ago

Without it works. I'll try BRAKER with this, at least momentarily, and maybe fix this later. Thanks a lot Katarina Cheers

F

KatharinaHoff commented 1 year ago

You need to install the sql dependency for compiling with compgenepred=true. The instructions are available here: https://github.com/Gaius-Augustus/Augustus/blob/master/docs/INSTALL.md

If you do not have root permissions on the machine, I recommend singularity. We run CGP on our HPC in Singularity.

francicco commented 1 year ago

Can't use singularity and I have no sudo permissions :( F