Xerbo / LeanHRPT-Decode

An easy to use HRPT decoder.
GNU General Public License v3.0
83 stars 11 forks source link

libpredict will not compile #18

Closed rthawkcom closed 2 years ago

rthawkcom commented 2 years ago
  1. Doxygen is a prerequisite not listed in the instructions: Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

Solution is to install Doxygen: [sdr@sdr] build $sudo apt install doxygen

  1. Libpredict still will not build: [sdr@sdr] build $sudo cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. -- Found Doxygen: /usr/bin/doxygen (found version "1.9.1") found components: doxygen missing components: dot -- Configuring done -- Generating done -- Build files have been written to: /sdr/LeanHRPT-Decode/build/libpredict/build [sdr@sdr] build $sudo cmake --install . -- Install configuration: "Release" CMake Error at src/cmake_install.cmake:57 (file): file INSTALL cannot find "/sdr/LeanHRPT-Decode/build/libpredict/build/src/libpredict.so.2.0.0": No such file or directory. Call Stack (most recent call first): cmake_install.cmake:48 (include)

Solution is to install grafviz [sdr@sdr] build $sudo apt install graphviz

  1. Libpredict finally builds, but still unable to compile: [sdr@sdr] build $sudo cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. -- Configuring done -- Generating done -- Build files have been written to: /sdr/LeanHRPT-Decode/libpredict/build

[sdr@sdr] build $sudo cmake --install . -- Install configuration: "Release" CMake Error at src/cmake_install.cmake:57 (file): file INSTALL cannot find "/sdr/LeanHRPT-Decode/libpredict/build/src/libpredict.so.2.0.0": No such file or directory. Call Stack (most recent call first): cmake_install.cmake:48 (include)

==========================

Not sure how to proceed from here.

[sdr@sdr] build $ver No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu Jammy Jellyfish (development branch) Release: 22.04 Codename: jammy

Xerbo commented 2 years ago

Forgot to include a step in the README, run cmake --build . before cmake --install . Also note that Doxygen is not required unless you want to build the documentation

rthawkcom commented 2 years ago

...then how do you tell it to NOT include the documentation? If I follow the steps you have provided, I get the following error: Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

It will NOT let you proceed. If you don't believe me, spin up a VM with a virgin install of Ubuntu and try it for yourself!

That said, I had success following the new instructions, slightly modified as below:

Debian/Ubuntu

sudo apt install cmake gcc g++ qtbase5-dev libmuparser-dev libshp-dev doxygen graphviz sudo git clone -b v2.0.0 https://github.com/la1k/libpredict && cd libpredict sudo mkdir build && cd build sudo cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. sudo cmake --build . sudo cmake --install .

Everything works great now! Thank you for your help. You are doing amazing work!

Xerbo commented 2 years ago

In a fresh docker container, still builds and installs fine without Doxygen

root@62c9cd6793db:/libpredict/build# cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- 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
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- Configuring done
-- Generating done
-- Build files have been written to: /libpredict/build
root@62c9cd6793db:/libpredict/build# cmake --build .
Scanning dependencies of target predict_static
[  2%] Building C object src/CMakeFiles/predict_static.dir/orbit.c.o
[  4%] Building C object src/CMakeFiles/predict_static.dir/sun.c.o
[  6%] Building C object src/CMakeFiles/predict_static.dir/observer.c.o
[  9%] Building C object src/CMakeFiles/predict_static.dir/sdp4.c.o
[ 11%] Building C object src/CMakeFiles/predict_static.dir/sgp4.c.o
[ 13%] Building C object src/CMakeFiles/predict_static.dir/refraction.c.o
[ 16%] Building C object src/CMakeFiles/predict_static.dir/unsorted.c.o
[ 18%] Building C object src/CMakeFiles/predict_static.dir/julian_date.c.o
[ 20%] Building C object src/CMakeFiles/predict_static.dir/moon.c.o
[ 23%] Linking C static library libpredict.a
[ 23%] Built target predict_static
Scanning dependencies of target predict
[ 25%] Building C object src/CMakeFiles/predict.dir/orbit.c.o
[ 27%] Building C object src/CMakeFiles/predict.dir/sun.c.o
[ 30%] Building C object src/CMakeFiles/predict.dir/observer.c.o
[ 32%] Building C object src/CMakeFiles/predict.dir/sdp4.c.o
[ 34%] Building C object src/CMakeFiles/predict.dir/sgp4.c.o
[ 37%] Building C object src/CMakeFiles/predict.dir/refraction.c.o
[ 39%] Building C object src/CMakeFiles/predict.dir/unsorted.c.o
[ 41%] Building C object src/CMakeFiles/predict.dir/julian_date.c.o
[ 44%] Building C object src/CMakeFiles/predict.dir/version.c.o
[ 46%] Building C object src/CMakeFiles/predict.dir/moon.c.o
[ 48%] Linking C shared library libpredict.so
[ 48%] Built target predict
Scanning dependencies of target dummy-t
[ 51%] Building C object tests/CMakeFiles/dummy-t.dir/dummy-t.c.o
[ 53%] Linking C executable dummy-t
[ 53%] Built target dummy-t
Scanning dependencies of target maxelevation-t
[ 55%] Building CXX object tests/CMakeFiles/maxelevation-t.dir/maxelevation-t.cpp.o
[ 58%] Building CXX object tests/CMakeFiles/maxelevation-t.dir/testcase_reader.cpp.o
[ 60%] Linking CXX executable maxelevation-t
[ 60%] Built target maxelevation-t
Scanning dependencies of target link-t
[ 62%] Building C object tests/CMakeFiles/link-t.dir/link-t.c.o
[ 65%] Linking C executable link-t
[ 65%] Built target link-t
Scanning dependencies of target orbit-t
[ 67%] Building CXX object tests/CMakeFiles/orbit-t.dir/orbit-t.cpp.o
[ 69%] Building CXX object tests/CMakeFiles/orbit-t.dir/testcase_reader.cpp.o
[ 72%] Linking CXX executable orbit-t
[ 72%] Built target orbit-t
Scanning dependencies of target sun-t
[ 74%] Building CXX object tests/CMakeFiles/sun-t.dir/sun-t.cpp.o
[ 76%] Building CXX object tests/CMakeFiles/sun-t.dir/testcase_reader.cpp.o
[ 79%] Linking CXX executable sun-t
[ 79%] Built target sun-t
Scanning dependencies of target moon-t
[ 81%] Building CXX object tests/CMakeFiles/moon-t.dir/moon-t.cpp.o
[ 83%] Building CXX object tests/CMakeFiles/moon-t.dir/testcase_reader.cpp.o
[ 86%] Linking CXX executable moon-t
[ 86%] Built target moon-t
Scanning dependencies of target geostationary-t
[ 88%] Building CXX object tests/CMakeFiles/geostationary-t.dir/geostationary-t.cpp.o
[ 90%] Building CXX object tests/CMakeFiles/geostationary-t.dir/testcase_reader.cpp.o
[ 93%] Linking CXX executable geostationary-t
[ 93%] Built target geostationary-t
Scanning dependencies of target aoslos-t
[ 95%] Building CXX object tests/CMakeFiles/aoslos-t.dir/aoslos-t.cpp.o
[ 97%] Building CXX object tests/CMakeFiles/aoslos-t.dir/testcase_reader.cpp.o
[100%] Linking CXX executable aoslos-t
[100%] Built target aoslos-t
root@62c9cd6793db:/libpredict/build# cmake --install .
-- Install configuration: "Release"
-- Installing: /usr/lib/x86_64-linux-gnu/libpredict.so.2.0.0
-- Installing: /usr/lib/x86_64-linux-gnu/libpredict.so.2
-- Installing: /usr/lib/x86_64-linux-gnu/libpredict.so
-- Installing: /usr/include/predict/predict.h
-- Installing: /usr/lib/x86_64-linux-gnu/libpredict.a
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/predict.pc
root@62c9cd6793db:/libpredict/build# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"