veg / tn93

TN93 fast distance calculator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compilation error on Ubuntu 22.04.4

ArtPoon opened this issue · comments

Using commit c1c0a37a04500528e308f20e6758e9c8bfeaf35e on a system running Ubuntu 22.04.
The install sequence cmake .; make throws the following error:

art@aziraphale:~/git/tn93$ make
Consolidate compiler generated dependencies of target tn93
make[2]: *** No rule to make target '/usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so', needed by 'tn93'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:103: CMakeFiles/tn93.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

This seems like a fairly low-level library that should be available, and indeed it is on the system, but in a different subfolder:

art@aziraphale:~/git/tn93$ locate libgomp.so
/snap/gnome-3-38-2004/119/usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so
/snap/gnome-3-38-2004/119/usr/lib/x86_64-linux-gnu/libgomp.so.1
/snap/gnome-3-38-2004/119/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
/snap/gnome-3-38-2004/143/usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so
/snap/gnome-3-38-2004/143/usr/lib/x86_64-linux-gnu/libgomp.so.1
/snap/gnome-3-38-2004/143/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
/snap/gnome-42-2204/172/usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so
/snap/gnome-42-2204/172/usr/lib/x86_64-linux-gnu/libgomp.so.1
/snap/gnome-42-2204/172/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
/snap/gnome-42-2204/176/usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so
/snap/gnome-42-2204/176/usr/lib/x86_64-linux-gnu/libgomp.so.1
/snap/gnome-42-2204/176/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
/snap/inkscape/10555/usr/lib/x86_64-linux-gnu/libgomp.so.1
/snap/inkscape/10555/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
/usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so
/usr/lib/x86_64-linux-gnu/libgomp.so.1
/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0

For some reason, cmake is trying to use an older version of gcc (7) but my system is set up for version 11.

art@aziraphale:~/git/tn93$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Ah, the problem was that I had copied this git repo from my older system. A grep revealed the issue:

art@aziraphale:~/git/tn93$ grep -r libgomp
CMakeCache.txt:OpenMP_gomp_LIBRARY:FILEPATH=/usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeCache.txt:FIND_PACKAGE_MESSAGE_DETAILS_OpenMP_C:INTERNAL=[-fopenmp][/usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so][/usr/lib/x86_64-linux-gnu/libpthread.so][v4.5()]
CMakeCache.txt:FIND_PACKAGE_MESSAGE_DETAILS_OpenMP_CXX:INTERNAL=[-fopenmp][/usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so][/usr/lib/x86_64-linux-gnu/libpthread.so][v4.5()]
CMakeFiles/ShortestPathTN93.dir/build.make:ShortestPathTN93: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeFiles/tn93-cluster.dir/build.make:tn93-cluster: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeFiles/CMakeOutput.log:Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.spec
CMakeFiles/CMakeOutput.log:  ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.spec]
CMakeFiles/CMakeOutput.log:Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.spec
CMakeFiles/CMakeOutput.log:  ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.spec]
CMakeFiles/fasta_diff.dir/build.make:fasta_diff: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeFiles/seqcoverage.dir/build.make:seqcoverage: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeFiles/selectreads.dir/build.make:selectreads: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeFiles/tn93.dir/build.make:tn93: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeFiles/readreduce.dir/build.make:readreduce: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
CMakeFiles/seqdiff.dir/build.make:seqdiff: /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so
art@aziraphale:~/git/tn93$ rm CMakeCache.txt

cmake. and make now compiles correctly.