Compilation error on Ubuntu 22.04.4
ArtPoon opened this issue · comments
Art Poon commented
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.
Art Poon commented
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.