Skip to content
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

added include for <optional> in G++17 #2

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

cheetahdotcat
Copy link

To fix an Error Message i was getting while compiling this in an Ubuntu Jammy container running on Balena OS (x86_64)

Consolidate compiler generated dependencies of target kvak
[  5%] Building CXX object CMakeFiles/kvak.dir/main.cpp.o
[ 11%] Building CXX object CMakeFiles/kvak.dir/costas.cpp.o
[ 17%] Building CXX object CMakeFiles/kvak.dir/demodulator.cpp.o
In file included from /app/kvak/demodulator.cpp:6:
/app/kvak/log.hpp:59:22: error: ‘optional’ in namespace ‘std’ does not name a template type
   59 |                 std::optional<std::reference_wrapper<std::ostream>> stream;
      |                      ^~~~~~~~
/app/kvak/log.hpp:8:1: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’?
    7 | #include <string.h>
  +++ |+#include <optional>
    8 | 
/app/kvak/log.hpp:85:14: error: ‘optional’ in namespace ‘std’ does not name a template type
   85 |         std::optional<std::reference_wrapper<std::ostream>> stream;
      |              ^~~~~~~~
/app/kvak/log.hpp:85:9: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’?
   85 |         std::optional<std::reference_wrapper<std::ostream>> stream;
      |         ^~~
/app/kvak/log.hpp: In constructor ‘kvak::log::log_wrapper::log_wrapper(const string&, std::ostream&)’:
/app/kvak/log.hpp:26:17: error: class ‘kvak::log::log_wrapper’ does not have any field named ‘stream’
   26 |                 stream(stream)
      |                 ^~~~~~
/app/kvak/log.hpp: In constructor ‘kvak::log::log_wrapper::log_ender::log_ender(std::ostream&)’:
/app/kvak/log.hpp:38:25: error: class ‘kvak::log::log_wrapper::log_ender’ does not have any field named ‘stream’
   38 |                         stream(stream)
      |                         ^~~~~~
/app/kvak/log.hpp: In destructor ‘kvak::log::log_wrapper::log_ender::~log_ender()’:
/app/kvak/log.hpp:44:35: error: ‘class kvak::log::log_wrapper::log_ender’ has no member named ‘stream’
   44 |                         if (this->stream) {
      |                                   ^~~~~~
/app/kvak/log.hpp:45:39: error: ‘class kvak::log::log_wrapper::log_ender’ has no member named ‘stream’
   45 |                                 this->stream.value().get() << "\x1b[0m" << std::endl;
      |                                       ^~~~~~
/app/kvak/log.hpp: In member function ‘kvak::log::log_wrapper::log_ender& kvak::log::log_wrapper::log_ender::operator<<(T&&)’:
/app/kvak/log.hpp:52:35: error: ‘class kvak::log::log_wrapper::log_ender’ has no member named ‘stream’
   52 |                         if (this->stream) {
      |                                   ^~~~~~
/app/kvak/log.hpp:53:39: error: ‘class kvak::log::log_wrapper::log_ender’ has no member named ‘stream’
   53 |                                 this->stream.value().get() << val;
      |                                       ^~~~~~
/app/kvak/log.hpp: In member function ‘void kvak::log::log_wrapper::mute()’:
/app/kvak/log.hpp:64:23: error: ‘class kvak::log::log_wrapper’ has no member named ‘stream’
   64 |                 this->stream.reset();
      |                       ^~~~~~
/app/kvak/log.hpp: In member function ‘void kvak::log::log_wrapper::redirect(std::ostream&)’:
/app/kvak/log.hpp:69:23: error: ‘class kvak::log::log_wrapper’ has no member named ‘stream’
   69 |                 this->stream = stream;
      |                       ^~~~~~
/app/kvak/log.hpp: In member function ‘kvak::log::log_wrapper::log_ender kvak::log::log_wrapper::operator<<(T&&)’:
/app/kvak/log.hpp:76:28: error: ‘class kvak::log::log_wrapper’ has no member named ‘stream’
   76 |                 if (!this->stream) {
      |                            ^~~~~~
/app/kvak/log.hpp:79:40: error: ‘class kvak::log::log_wrapper’ has no member named ‘stream’
   79 |                 return log_ender(this->stream.value().get() << this->prefix << val);
      |                                        ^~~~~~
make[2]: *** [CMakeFiles/kvak.dir/build.make:115: CMakeFiles/kvak.dir/demodulator.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/kvak.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

@ikarus23
Copy link

Thanks for the fix. For me there was still an #include <array> missing in resample.cpp, causing

kvak/resample.cpp: In function ‘int main(int, char**)’:
kvak/resample.cpp:29:51: error: aggregate ‘std::array<std::complex<float>, 8192> data’ has incomplete type and cannot be defined
   29 |         std::array<std::complex<float>, 1024 * 8> data;
      |                                                   ^~~~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants