-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compiling on Ubuntu #121
Comments
As it happens, I just ran into this problem earlier today.
The build instructions in the README are incomplete with respect to cloning
the repo. After the git clone,
cd goestools
git submodule init
git submodule update --recursive
Then, if your experience is like mine, you can start having fun with
missing dependencies and version bit rot.
Check issue #113 in the Github repo for some patches. Also,
sudo apt-get install libairspy-dev librtlsdr-dev libopencv-dev libproj-dev
I can't guarantee success, though, since I'm still trying to get the build
to work.
-Paul
…On Wed, Jan 26, 2022 at 4:05 PM JosephTheTank13 ***@***.***> wrote:
I have tried many times over the years to compile this on my main Ubuntu
PC and have yet to succeed. On a raspberry pi it usually works first try,
but there is a difference in how cmake works or something.
`~/goestools/build$ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local
CMake Warning at CMakeLists.txt:36 (find_package):
By not providing "FindSanitizers.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Sanitizers", but CMake did not find one.
Could not find a package configuration file provided by "Sanitizers" with
any of the following names:
SanitizersConfig.cmake
sanitizers-config.cmake
Add the installation prefix of "Sanitizers" to CMAKE_PREFIX_PATH or set
"Sanitizers_DIR" to a directory containing one of the above files. If
"Sanitizers" provides a separate development package or SDK, be sure it has
been installed.
CMake Error at CMakeLists.txt:59 (add_subdirectory):
The source directory
/home/joseph/goestools/vendor/libcorrect
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:60 (add_subdirectory):
The source directory
/home/joseph/goestools/vendor/libaec
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:68 (add_subdirectory):
The source directory
/home/joseph/goestools/vendor/nanomsg
does not contain a CMakeLists.txt file.
CMake Error at src/lrit/CMakeLists.txt:5 (add_sanitizers):
Unknown CMake command "add_sanitizers".
-- Configuring incomplete, errors occurred!
See also "/home/joseph/goestools/build/CMakeFiles/CMakeOutput.log".`
I am not versed in how CMake works and how to go about fixing this so if
anyone at all knows what's wrong here.... I'd really really be grateful.
—
Reply to this email directly, view it on GitHub
<#121>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABI3X7M2GEKFBMZ6YTXBLNLUYCD43ANCNFSM5M4NZC3A>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
I will try that!
Any idea how to get OpenCV to work? I installed libopencv-dev, and changed
the lines in the CMakeLists.txt (main and goesproc) to reflect openCV 4 but
iirc that does not help at all. What errors are you running into that’s
preventing you from compiling?
On Wed, Jan 26, 2022 at 6:48 PM Paul Williamson ***@***.***>
wrote:
… As it happens, I just ran into this problem earlier today.
The build instructions in the README are incomplete with respect to cloning
the repo. After the git clone,
cd goestools
git submodule init
git submodule update --recursive
Then, if your experience is like mine, you can start having fun with
missing dependencies and version bit rot.
Check issue #113 in the Github repo for some patches. Also,
sudo apt-get install libairspy-dev librtlsdr-dev libopencv-dev libproj-dev
I can't guarantee success, though, since I'm still trying to get the build
to work.
-Paul
On Wed, Jan 26, 2022 at 4:05 PM JosephTheTank13 ***@***.***>
wrote:
> I have tried many times over the years to compile this on my main Ubuntu
> PC and have yet to succeed. On a raspberry pi it usually works first try,
> but there is a difference in how cmake works or something.
>
> `~/goestools/build$ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local
> CMake Warning at CMakeLists.txt:36 (find_package):
> By not providing "FindSanitizers.cmake" in CMAKE_MODULE_PATH this project
> has asked CMake to find a package configuration file provided by
> "Sanitizers", but CMake did not find one.
>
> Could not find a package configuration file provided by "Sanitizers" with
> any of the following names:
>
> SanitizersConfig.cmake
> sanitizers-config.cmake
>
> Add the installation prefix of "Sanitizers" to CMAKE_PREFIX_PATH or set
> "Sanitizers_DIR" to a directory containing one of the above files. If
> "Sanitizers" provides a separate development package or SDK, be sure it
has
> been installed.
>
> CMake Error at CMakeLists.txt:59 (add_subdirectory):
> The source directory
>
> /home/joseph/goestools/vendor/libcorrect
>
> does not contain a CMakeLists.txt file.
>
> CMake Error at CMakeLists.txt:60 (add_subdirectory):
> The source directory
>
> /home/joseph/goestools/vendor/libaec
>
> does not contain a CMakeLists.txt file.
>
> CMake Error at CMakeLists.txt:68 (add_subdirectory):
> The source directory
>
> /home/joseph/goestools/vendor/nanomsg
>
> does not contain a CMakeLists.txt file.
>
> CMake Error at src/lrit/CMakeLists.txt:5 (add_sanitizers):
> Unknown CMake command "add_sanitizers".
>
> -- Configuring incomplete, errors occurred!
> See also "/home/joseph/goestools/build/CMakeFiles/CMakeOutput.log".`
>
> I am not versed in how CMake works and how to go about fixing this so if
> anyone at all knows what's wrong here.... I'd really really be grateful.
>
> —
> Reply to this email directly, view it on GitHub
> <#121>, or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/ABI3X7M2GEKFBMZ6YTXBLNLUYCD43ANCNFSM5M4NZC3A
>
> .
> Triage notifications on the go with GitHub Mobile for iOS
> <
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
>
> or Android
> <
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub
>.
>
> You are receiving this because you are subscribed to this thread.Message
> ID: ***@***.***>
>
—
Reply to this email directly, view it on GitHub
<#121 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGXPBYLRX7N7KQ6GOF7FP4TUYCI55ANCNFSM5M4NZC3A>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
I get as far as |
[ 69%] Built target compute_sync_words |
On Wed, Jan 26, 2022 at 6:31 PM JosephTheTank13 ***@***.***> wrote:
Any idea how to get OpenCV to work? I installed libopencv-dev, and changed
the lines in the CMakeLists.txt (main and goesproc) to reflect openCV 4 but
iirc that does not help at all.
I copied from another message the edits for OpenCV. In the top-level
CMakeLists.txt, add
include_directories(BEFORE SYSTEM /usr/include/opencv4)
In src/goesproc/CMakeLists.txt, change:
-pkg_check_modules(OPENCV REQUIRED opencv)
+pkg_check_modules(OPENCV REQUIRED opencv4)
In src/goesproc/config.cc, change:
- auto img = cv::imread(path, CV_LOAD_IMAGE_UNCHANGED);
+ auto img = cv::imread(path, cv::IMREAD_UNCHANGED);
Two places in src/goesproc/image.cc, change:
- return std::move(out);
+ return out;
I'm not sure if it helped, but I also apt-get installed
libopencv-contrib-dev.
What errors are you running into that’s preventing you from compiling?
I had to mess with the checks on the version of Proj. Search the web for
ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
and you'll also have to short-circuit a check in one of the .h files.
Another thing that slowed me down was that I needed to greatly increase the
amount of swap space, but that's just because I was compiling on a
Raspberry Pi.
Above advice gets it to COMPILE and LINK. I don't know yet whether it WORKS!
Some of this stuff is already in a pull request that's been languishing
since August.
-Paul
… Message ID: ***@***.***>
|
See #113 for most of those
errors.
Others, I didn't run into.
-Paul
…On Wed, Jan 26, 2022 at 7:13 PM JosephTheTank13 ***@***.***> wrote:
[ 69%] Built target compute_sync_words
[ 71%] Built target airspy_source
[ 72%] Built target assembler
[ 73%] Built target nanomsg_source
[ 75%] Built target agc
[ 75%] Built target quantize
In file included from /home/joseph/goestools/src/lib/packet_reader.cc:1:
/home/joseph/goestools/src/lib/packet_reader.h:11:38: error: ‘uint8_t’ was
not declared in this scope
11 | virtual bool nextPacket(std::array<uint8_t, 892>& out) = 0;
| ^~~~~~~
/home/joseph/goestools/src/lib/packet_reader.h:4:1: note: ‘uint8_t’ is
defined in header ‘’; did you forget to ‘#include ’?
3 | #include
+++ |+#include
4 |
/home/joseph/goestools/src/lib/packet_reader.h:11:50: error: template
argument 1 is invalid
11 | virtual bool nextPacket(std::array<uint8_t, 892>& out) = 0;
| ^
make[2]: *** [src/lib/CMakeFiles/packet_reader.dir/build.make:82:
src/lib/CMakeFiles/packet_reader.dir/packet_reader.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1768:
src/lib/CMakeFiles/packet_reader.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
In file included from /home/joseph/goestools/src/lib/packet_writer.cc:1:
/home/joseph/goestools/src/lib/packet_writer.h:12:39: error: ‘uint8_t’ was
not declared in this scope
12 | virtual void write(const std::array<uint8_t, 892>& in, time_t t) = 0;
| ^~~~~~~
/home/joseph/goestools/src/lib/packet_writer.h:5:1: note: ‘uint8_t’ is
defined in header ‘’; did you forget to ‘#include ’?
4 | #include
+++ |+#include
5 |
/home/joseph/goestools/src/lib/packet_writer.h:12:51: error: template
argument 1 is invalid
12 | virtual void write(const std::array<uint8_t, 892>& in, time_t t) = 0;
| ^
make[2]: *** [src/lib/CMakeFiles/packet_writer.dir/build.make:82:
src/lib/CMakeFiles/packet_writer.dir/packet_writer.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1849:
src/lib/CMakeFiles/packet_writer.dir/all] Error 2
[ 76%] Built target rtlsdr_source
[ 77%] Built target rrc
[ 77%] Built target costas
In file included from /home/joseph/goestools/src/decoder/derandomizer.cc:1:
/home/joseph/goestools/src/decoder/derandomizer.h:14:27: error: ‘size_t’
has not been declared
14 | void run(uint8_t* data, size_t len);
| ^~~~~~
/home/joseph/goestools/src/decoder/derandomizer.cc:33:6: error: no
declaration matches ‘void decoder::Derandomizer::run(uint8_t*, size_t)’
33 | void Derandomizer::run(uint8_t* data, size_t len) {
| ^~~~~~~~~~~~
In file included from /home/joseph/goestools/src/decoder/derandomizer.cc:1:
/home/joseph/goestools/src/decoder/derandomizer.h:14:8: note: candidate
is: ‘void decoder::Derandomizer::run(uint8_t*, int)’
14 | void run(uint8_t* data, size_t len);
| ^~~
/home/joseph/goestools/src/decoder/derandomizer.h:10:7: note: ‘class
decoder::Derandomizer’ defined here
10 | class Derandomizer {
| ^~~~~~~~~~~~
make[2]: *** [src/decoder/CMakeFiles/packetizer.dir/build.make:95:
src/decoder/CMakeFiles/packetizer.dir/derandomizer.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2071:
src/decoder/CMakeFiles/packetizer.dir/all] Error 2
make: *** [Makefile:171: all] Error 2
—
Reply to this email directly, view it on GitHub
<#121 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABI3X7NSXSLZZ2Y7IETG44TUYCZ37ANCNFSM5M4NZC3A>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you commented.Message ID:
***@***.***>
|
Alright, I made some changes but am still stuck. [ 71%] Built target compute_sync_words |
In file included from /home/joseph/goestools/src/decoder/derandomizer.cc:1:
/home/joseph/goestools/src/decoder/derandomizer.h:14:27: error: ‘size_t’ has not been declared
I didn’t run into this problem, but I bet you could make it go away by
#include <cstddef>
In derandomizer.h
I think the rest of the messages are all about the same error, so they might go away too.
-Paul
|
Getting close! [ 88%] Building CXX object src/goesproc/CMakeFiles/goesproc.dir/map_drawer.cc.o It seems I don't have the version of proj that it's looking for. |
So it's looking for either version 4 or version 5 of libproj. The problem is Ubuntu 21.10 has libproj 7.2.1-1. I need to somehow get the old version or update goesproc to accept version 7. |
Alright! Success at last! I am working on a guide right now with all the modifications listed. |
Guide for fixing GOESTOOLS 2022-1-27
in the root directory In src/goesproc/CMakeLists.txt, line 23, change: In src/goesproc/config.cc, line 210 change: Two places (line 302 and 309) in src/goesproc/image.cc, change: Add: Next add: To the beginning of /src/goesproc/proj.cc and proj.h, add And because proj has been updated a lot, change
Now we need to set up our config files in your home directory, create goesrecv.conf
then: And that's how it's done! |
Thanks for sharing these steps @JosephTheTank13 and @MustBeArt ! All of these are now present in the main branch so it should work out of the box again. Also, I've setup automated tests to compile goestools against a handful of versions of Ubuntu (including 21.10), confirming that compilation succeeds. This also uncovered that the libproj API usage must be updated to make it work for the upcoming Ubuntu 22.04 release. |
The legend finally returns! Thank you! |
I have tried many times over the years to compile this on my main Ubuntu PC and have yet to succeed. On a raspberry pi it usually works first try, but there is a difference in how cmake works or something.
~/goestools/build$ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local
CMake Warning at CMakeLists.txt:36 (find_package):
By not providing "FindSanitizers.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Sanitizers", but CMake did not find one.
Could not find a package configuration file provided by "Sanitizers" with
any of the following names:
Add the installation prefix of "Sanitizers" to CMAKE_PREFIX_PATH or set
"Sanitizers_DIR" to a directory containing one of the above files. If
"Sanitizers" provides a separate development package or SDK, be sure it has
been installed.
CMake Error at CMakeLists.txt:59 (add_subdirectory):
The source directory
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:60 (add_subdirectory):
The source directory
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:68 (add_subdirectory):
The source directory
does not contain a CMakeLists.txt file.
CMake Error at src/lrit/CMakeLists.txt:5 (add_sanitizers):
Unknown CMake command "add_sanitizers".
-- Configuring incomplete, errors occurred!
See also "/home/joseph/goestools/build/CMakeFiles/CMakeOutput.log".
I am not versed in how CMake works and how to go about fixing this so if anyone at all knows what's wrong here.... I'd really really be grateful.
The text was updated successfully, but these errors were encountered: