lczech / genesis

A library for working with phylogenetic and population genetic data.
http://genesis-lib.org/
GNU General Public License v3.0
57 stars 12 forks source link

placement_classification_table.cpp does not compile #4

Closed dougwyu closed 6 years ago

dougwyu commented 6 years ago

i downloaded placement_classification_table.cpp from https://gist.github.com/lczech/24c12a912e4eb0ed38d517d887c42db5

placed into genesis-0.19.0/apps and ran make update

compiled failed

(compiled has succeeded for all the cpp files in the doc/demos folder and also for merge_jplace_files.cpp)

lczech commented 6 years ago

Hi @dougwyu,

the program was written for genesis v0.11.0, which is mentioned in the description of the file, but probably not well visible there... So, simply download the respective release from here, then it should work!

Lucas

dougwyu commented 6 years ago

hi Lucas,

I tried compiling genesis 0.11.0 and 0.11.1, and i got errors.

I'm running cmake 3.3.1 and gcc 4.9.3

$ make Running cmake... -- The C compiler identification is GNU 4.4.7 -- The CXX compiler identification is GNU 4.4.7 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - 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 -- Detecting CXX compile features -- Detecting CXX compile features - done -- Building RELEASE -- Looking for include file pthread.h -- Looking for include file pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE -- Using threads -- Building shared lib -- No genesis applications found -- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) -- Gtest not found CMake Warning at test/src/CMakeLists.txt:30 (message): Cannot build tests.

-- Configuring done -- Generating done -- Build files have been written to: /gpfs/home/b042/scripts/genesis-0.11.1/build Running make... make -s -C build Scanning dependencies of target genesis_lib_shared [ 0%] Building CXX object lib/CMakeFiles/genesis_lib_shared.dir/utils/formats/csv/reader.cpp.o cc1plus: error: unrecognized command line option "-std=c++11" make[3]: [lib/CMakeFiles/genesis_lib_shared.dir/utils/formats/csv/reader.cpp.o] Error 1 make[2]: [lib/CMakeFiles/genesis_lib_shared.dir/all] Error 2 make[1]: [all] Error 2 make: [build] Error 2

lczech commented 6 years ago

Hi,

it seems that the wrong compiler was used. The second line of your output says The CXX compiler identification is GNU 4.4.7, which is too low for genesis. You might need to have a look at your CMake environment and set the compiler properly. Usually, something like export CXX=... in your shell prior to building works.

Lucas

dougwyu commented 6 years ago

ah, that was it. i fixed the CC and CXX variables.

thanks

On 11 Jun 2018, at 19:49, Lucas Czech <notifications@github.com mailto:notifications@github.com> wrote:

Hi,

it seems that the wrong compiler was used. The second line of your output says The CXX compiler identification is GNU 4.4.7, which is too low for genesis. You might need to have a look at your CMake environment and set the compiler properly. Usually, something like export CXX=... in your shell prior to building works.

Lucas

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lczech/genesis/issues/4#issuecomment-396346907, or mute the thread https://github.com/notifications/unsubscribe-auth/AMPCP2i_GygSxEUBwCPZSyCiagx1XoTQks5t7rvGgaJpZM4UjBcD.

lczech commented 6 years ago

Nice! So I guess, this issue can be closed? If you have any more trouble with this, feel free to reopen ;-)

dougwyu commented 6 years ago

for others who might have trouble with this:

get your gcc and g++ paths and record them

which gcc # e.g. my path is: /gpfs/software/compilers/gcc/4.9.3/bin/gcc which g++

then run these in your shell, substituting in the paths to your gcc and g++

export CC = /gpfs/software/compilers/gcc/4.9.3/bin/gcc
export CXX = /gpfs/software/compilers/gcc/4.9.3/bin/g++