tbigot / tpms

Tree Pattern Matching Suite
Other
1 stars 0 forks source link

tpms does not compile #6

Closed flassalle closed 12 years ago

flassalle commented 12 years ago

with libboost-... 1.46.1 and libbpp-... 2.0.2-1 (standards packages available under ubuntu 11.10 with apt)

the bug:

cmake . -- The C compiler identification is GNU -- The CXX compiler identification is unknown -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name. -- Library BPP found here: includes : BPP_INCLUDE_DIR-NOTFOUND libraries: /usr/lib/libbpp-phyl.so CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:1138 (message): Unable to find the requested Boost libraries.

Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers. Call Stack (most recent call first): CMakeLists.txt:33 (find_package)

CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: BPP_INCLUDE_DIR used as include directory in directory /home/lassalle/Programmes/tpms Boost_INCLUDE_DIR (ADVANCED) used as include directory in directory /home/lassalle/Programmes/tpms

-- Configuring incomplete, errors occurred!

flassalle commented 12 years ago

the INSTALL page advises the Bio++ 2.0.1 version, the bug may be found in the difference between 2.0.1 and 2.0.2 ...

tbigot commented 12 years ago

Are devel packages (both for BPP and Boost) installed ?

flassalle commented 12 years ago

no

tbigot commented 12 years ago

According to the doc, you need devel packages to compile TPMS: “some libraries, and their development files (devel packages or installation with sources)”

flassalle commented 12 years ago

on the Google doc page:

Dynamic version

Dynamic binaries is probably technically a better choice:

less memory used (dynamic libraries are loaded once, then shared between all processus linked to them),
more maintainable: you can updates the libraries only, if a bug is corrected (provided the version change does not break the API)

You have to install some libraries, but don’t need to install devel packages:

boost (included in most distributions) version ≥ 0.42:
    boost-filesystem
    boost-threads
    boost-system
tbigot commented 12 years ago

You’re trying to compile, so you’re not concerned by the Part I, but by the Part II “Installation from sources”.

flassalle commented 12 years ago

actually I had libbpp-...-dev packages, but not libboost-...-dev ones ; I will try with them

flassalle commented 12 years ago

with these packages: libbpp-core2 2.0.1-2 libbpp-core-dev 2.0.1-2 libbpp-seq9 2.0.1-2 libbpp-seq-dev 2.0.1-2 libbpp-phyl9 2.0.1-2 libbpp-phyl-dev 2.0.1-2

libboost-dev 1.46.11 and dependencies

and doing that:

\rm CMakeCache.txt cmake .

i got this :

-- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Library BPP found here: includes : BPP_INCLUDE_DIR-NOTFOUND libraries: /usr/lib/libbpp-phyl.so -- Boost version: 1.46.1 -- Found the following Boost libraries: -- filesystem -- system CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: BPP_INCLUDE_DIR used as include directory in directory /home/lassalle/Programmes/tpms

-- Configuring incomplete, errors occurred!

flassalle commented 12 years ago

can I set the $BPP_INCLUDE_DIR as a "hard" environment variable of my shell? if so, where?

thank you Tom

tbigot commented 12 years ago

Yes you can, just do: cmake . -DBPP_INCLUDE_DIR=/usr/include/

I really have to test if the user has to do that on a “fresh install”.

flassalle commented 12 years ago

i did that ; it's ok for the configuration, but when compiling, I get that:

lassalle@lassalle-Laptop:~/Programmes/tpms$ make tpms_mkdb Scanning dependencies of target tpms_mkdb [ 9%] Building CXX object CMakeFiles/tpms_mkdb.dir/src/tpms_mkdb.cpp.o In file included from /home/lassalle/Programmes/tpms/src/classes/DataBase.hpp:12:0, from /home/lassalle/Programmes/tpms/src/tpms_mkdb.cpp:6: /home/lassalle/Programmes/tpms/src/classes/Family.hpp:10:25: erreur fatale: Phyl/Newick.h : Aucun fichier ou dossier de ce type compilation terminée. make[3]: * [CMakeFiles/tpms_mkdb.dir/src/tpms_mkdb.cpp.o] Erreur 1 make[2]: * [CMakeFiles/tpms_mkdb.dir/all] Erreur 2 make[1]: * [CMakeFiles/tpms_mkdb.dir/rule] Erreur 2 make: * [tpms_mkdb] Erreur 2

tbigot commented 12 years ago

[Thread edited, my fault]

Are you using the GIT version of tpms ?

flassalle commented 12 years ago

yes, updated today


weird : by looking at the CmakeList.txt file, I saw the command for building tpms_unicity, so the file was obsolete what is strange, considering I erased the directory and made a git clone... or maybe I made the thing by mixing te version from the pbil ftp... it must be that. maybe you should not leave the link to the obsolete files in the INSTALL doc. so I did the git clone again. and it works.

sorry for the lost time. and thank you Tom for the support

flassalle commented 12 years ago

I just get this warning when building the executable:

[100%] Building CXX object CMakeFiles/tpms_computations.dir/src/classes/NodeConstraints.cpp.o /home/lassalle/Programmes/tpms/src/classes/NodeConstraints.cpp: In member function ‘bool tpms::NodeConstraints::allows(tpms::Family&, bpp::Node*)’: /home/lassalle/Programmes/tpms/src/classes/NodeConstraints.cpp:156:53: attention : comparison between ‘enum tpms::Family::NodeNature’ and ‘enum tpms::NodeConstraints::NodeNature’ [-Wenum-compare] Linking CXX executable build/tpms_computations [100%] Built target tpms_computations

flassalle commented 12 years ago

.... I'm not sure I must fill the same thread, but now it is compiled, it makes a seg fault:

lassalle@lassalle-Laptop:~/Bureau/acnuc_agro$ /home/lassalle/Programmes/tpms/build/tpms_computations -collection=$PWD/all_rhizo/tpms/agrogenom_31Rhizo -output-dir=$PWD/all_rhizo/tpms/taxonomic_rooting

Argument list control

Binary = /home/lassalle/Programmes/tpms/build/tpms_computations

*collection=/home/lassalle/Bureau/acnuc_agro/all_rhizo/tpms/agrogenom_31Rhizo

*output-dir=/home/lassalle/Bureau/acnuc_agro/all_rhizo/tpms/taxonomic_rooting

1 threads will be used. Loading preamble... [DONE] Loading species tree... [DONE] Loading family trees: |0% 100%| [#################################################]
|0% 100%| Multithreaded operation. Number of threads: 1. Lot size : 6243 [#################################################]

Load sucessful!

Species tree loaded: 131 species. Loaded 6243 families / 6243 expected. Trees are not reconciled.

To perform these operations, I need to associate each sequence with a species. Mapping leaves to species: |0% 100%| Multithreaded operation. Number of threads: 1. Lot size : 6243 [#################################################]

+---------------------------- MENU
SCORING
=======
AU) annotate with unicity scores
AB) annotate with bipartition scores
RE-ROOTING
==========
RU) reroot with unicity criteria
RT) reroot with taxonomic criteria
MISC
====
T) collection status
M) help menu
SU) Save collection with Unicity scores
Q) QUIT

command? (m for help) > RT Re-rooting with taxonomic criteria Mapping nodes to Lowest Taxa: |0% 100%| Multithreaded operation. Number of threads: 1. Lot size : 6243 Erreur de segmentation


it does not happen with the RU command

we see that tomorrow? again sorry for the debug session. but it helps improving our english!

tbigot commented 12 years ago

This probem has been solved some weeks ago. Thanks for the report!