**NOTE** January 2022 - Changes to Gstreamer and Pipewire packages from PackmanPlease read the following thread about the current changes
-
cmake or gcc issue; filesystem not found
Hopefully this isn't a repost since I can't find my message. (Yeah I used the FAQ and found other messages.)
I just upgraded from 15.2 to 15.3 and I am having issues with GCC or perhaps CMAKE Two different programs pulled from github (as in should be good code) have the same type of error.
Example from SDRplusplus:
Code:
Building CXX object core/CMakeFiles/sdrpp_core.dir/src/config.cpp.o
/usr/local/src/SDRPlusPlus/core/src/config.cpp:5:10: fatal error: filesystem: No such file or directory
#include <filesystem>
^~~~~~~~~~~~
compilation terminated.
make[2]: *** [core/CMakeFiles/sdrpp_core.dir/build.make:80: core/CMakeFiles/sdrpp_core.dir/src/config.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:800: core/CMakeFiles/sdrpp_core.dir/all] Error 2
make: *** [Makefile:147: all] Error 2
Example from gnuradio:
Code:
Building CXX object gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/constants.cc.o
In file included from /usr/include/boost/dll/runtime_symbol_info.hpp:11:0,
from /usr/local/src/gnuradio/build/gnuradio-runtime/lib/constants.cc:16:
/usr/include/boost/dll/config.hpp:42:10: fatal error: filesystem: No such file or directory
#include <filesystem>
^~~~~~~~~~~~
compilation terminated.
make[2]: *** [gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/build.make:100: gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/constants.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2336: gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/all] Error 2
make: *** [Makefile:158: all] Error 2
This stackoverflow sort of expalins the solution except it doesn't specifically explain how to do so:
https://stackoverflow.com/questions/...e-or-directory
Basically an explanation for a coder which I am not.
I did an unconditional upgrade of cmake and cmake-full just for yucks.
-
Re: cmake or gcc issue; filesystem not found
 Originally Posted by gariac
Hopefully this isn't a repost since I can't find my message. (Yeah I used the FAQ and found other messages.)
I just upgraded from 15.2 to 15.3 and I am having issues with GCC or perhaps CMAKE Two different programs pulled from github (as in should be good code) have the same type of error.
Example from SDRplusplus:
Code:
Building CXX object core/CMakeFiles/sdrpp_core.dir/src/config.cpp.o
/usr/local/src/SDRPlusPlus/core/src/config.cpp:5:10: fatal error: filesystem: No such file or directory
#include <filesystem>
^~~~~~~~~~~~
compilation terminated.
make[2]: *** [core/CMakeFiles/sdrpp_core.dir/build.make:80: core/CMakeFiles/sdrpp_core.dir/src/config.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:800: core/CMakeFiles/sdrpp_core.dir/all] Error 2
make: *** [Makefile:147: all] Error 2
Example from gnuradio:
Code:
Building CXX object gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/constants.cc.o
In file included from /usr/include/boost/dll/runtime_symbol_info.hpp:11:0,
from /usr/local/src/gnuradio/build/gnuradio-runtime/lib/constants.cc:16:
/usr/include/boost/dll/config.hpp:42:10: fatal error: filesystem: No such file or directory
#include <filesystem>
^~~~~~~~~~~~
compilation terminated.
make[2]: *** [gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/build.make:100: gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/constants.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2336: gnuradio-runtime/lib/CMakeFiles/gnuradio-runtime.dir/all] Error 2
make: *** [Makefile:158: all] Error 2
This stackoverflow sort of expalins the solution except it doesn't specifically explain how to do so:
https://stackoverflow.com/questions/...e-or-directory
Basically an explanation for a coder which I am not.
I did an unconditional upgrade of cmake and cmake-full just for yucks.
Hi
Should inform you in the cmake output, before it starts compiling on what's missing.... There should be documentation on the requirement with the source? That error is normally a missing boost requirement,... as in libboost_filesystem-devel.
Push comes to shove, look at the OBS Development project (which is just updated and built for Leap) https://build.opensuse.org/package/s...radio/gnuradio
Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
SUSE SLE, openSUSE Leap/Tumbleweed (x86_64) | GNOME DE
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below... Thanks!
-
Re: cmake or gcc issue; filesystem not found
Do you have this file on your system? /usr/include/c++/11/filesystem
In my case (on tumbleweed 20220109):
Code:
find /usr/include/ -name filesystem
/usr/include/c++/11/filesystem
/usr/include/c++/11/experimental/filesystem
For me it's from this package:
Code:
rpm -qf /usr/include/c++/11/filesystem
libstdc++6-devel-gcc11-11.2.1+git1173-1.2.x86_64
Weird, from https://software.opensuse.org/package/libstdc++6 it seems the package exists for 15.2 but not 15.3 which might explain your problem if you were able to compile on 15.2.
It does seem to be in the experimental 15.3 packages if you want to try that.
Last edited by krakopo; 11-Jan-2022 at 06:53.
Reason: Had the wrong package in the link
-
Re: cmake or gcc issue; filesystem not found
 Originally Posted by krakopo
Weird, from https://software.opensuse.org/package/libstdc++6 it seems the package exists for 15.2 but not 15.3 which might explain your problem if you were able to compile on 15.2.
It does seem to be in the experimental 15.3 packages if you want to try that.
Never mind this, apparently a known issue that 15.3 packages don't show up there (https://forums.opensuse.org/showthre...25#post3089625)
-
Re: cmake or gcc issue; filesystem not found
 Originally Posted by gariac
Basically an explanation for a coder which I am not.
Then, you'll have to learn to read code fast – really fast …
- You'll have to inspect the following source files for the include statement calling “filesystem” –
‘/usr/local/src/SDRPlusPlus/core/src/config.cpp’ – It looks as if the call is being made at line #5 and character position #10 …
‘/usr/include/boost/dll/config.hpp’ – It looks as if the call is being made at line #42 and character position #10 …
Furthermore, the culprit call seems to be of the form “#include <filesystem>” which is a C++17 feature …
Catch 22 – the default openSUSE Leap 15.3 GCC C++ compiler is GCC7-C++ – which doesn't support C++17 by default – <https://gcc.gnu.org/projects/cxx-status.html> …
- The C++17 features were made available with GCC 5 but, until GCC 11 one has to enable them with the “-std=c++17” command-line flag … <https://gcc.gnu.org/projects/cxx-status.html#cxx17>.
- There are also some GCC extensions which, until GCC 11, have to be enabled with the “-std=gnu++17” command-line flag …
All of which is gobbledygook for people who can't (yet) read code but, there you are …
-
Re: cmake or gcc issue; filesystem not found
When an *hpp (header) file is not found, it gemerally means to me that a *.devel (development) package is missing as that is where header files are. I looked at choices and I would add package:
"libboost_filesystem_66_0-devel" package
and give it a whirl. The _66_ matches installed boost version. See if you get further.
tom kosvic
-
Re: cmake or gcc issue; filesystem not found
 Originally Posted by krakopo
Do you have this file on your system? /usr/include/c++/11/filesystem
In my case (on tumbleweed 20220109):
Code:
find /usr/include/ -name filesystem
/usr/include/c++/11/filesystem
/usr/include/c++/11/experimental/filesystem
For me it's from this package:
Code:
rpm -qf /usr/include/c++/11/filesystem
libstdc++6-devel-gcc11-11.2.1+git1173-1.2.x86_64
Weird, from https://software.opensuse.org/package/libstdc++6 it seems the package exists for 15.2 but not 15.3 which might explain your problem if you were able to compile on 15.2.
It does seem to be in the experimental 15.3 packages if you want to try that.
I'm using gcc10 not 11 and I have the filesystem in /usr/include/c++/10.
I tried the experimental version of libstdc++6 and it bombs. I logged all the repos it added so I should be able to undo them if they cause any problems.
Yeah everything was fine under Leap 14.2.
Note I have the include files for gcc7 but that produces the same bug.
-
Re: cmake or gcc issue; filesystem not found
 Originally Posted by tckosvic
When an *hpp (header) file is not found, it gemerally means to me that a *.devel (development) package is missing as that is where header files are. I looked at choices and I would add package:
"libboost_filesystem_66_0-devel" package
and give it a whirl. The _66_ matches installed boost version. See if you get further.
tom kosvic
One of the reasons I included error messages from compiling two different programs was to show the issue is with CMAKE or the compiler, not a missing library. Anyway I know about the devel libs. I've been building gnuradio for a few years. Until LEAP 15.3 things worked OK.
-
Re: cmake or gcc issue; filesystem not found
 Originally Posted by dcurtisfra
Then, you'll have to learn to read code fast – really fast …
- You'll have to inspect the following source files for the include statement calling “filesystem” –
‘/usr/local/src/SDRPlusPlus/core/src/config.cpp’ – It looks as if the call is being made at line #5 and character position #10 …
‘/usr/include/boost/dll/config.hpp’ – It looks as if the call is being made at line #42 and character position #10 …
Furthermore, the culprit call seems to be of the form “ #include <filesystem>” which is a C++17 feature …
Catch 22 – the default openSUSE Leap 15.3 GCC C++ compiler is GCC7-C++ – which doesn't support C++17 by default – < https://gcc.gnu.org/projects/cxx-status.html> …
- The C++17 features were made available with GCC 5 but, until GCC 11 one has to enable them with the “-std=c++17” command-line flag … <https://gcc.gnu.org/projects/cxx-status.html#cxx17>.
- There are also some GCC extensions which, until GCC 11, have to be enabled with the “-std=gnu++17” command-line flag …
All of which is gobbledygook for people who can't (yet) read code but, there you are …
Only gnuradio wants a compiler greater than 9 something ,which is why I picked 10. The other program has the same problem. One of the reasons I showed the program was present with two different programs was to show the issue is more likely with Opensuse than the code.
I tried all sorts of way to add “-std=c++17 on the cmake command line. i guess the next step is to edit the CMakeLists.txt and try to add the flag there.
-
Re: cmake or gcc issue; filesystem not found
 Originally Posted by gariac
Only gnuradio wants a compiler greater than 9 something ,which is why I picked 10.
Then, you'll have to upgrade to GCC 11 to enable the “#include <filesystem>” C++17 feature by default – without any need to use compiler options …
- Actually, with GCC 11, you'll also have some (experimental) support for the C++20 language features – meaning that, with GCC 11 you'll be well placed to handle code which is using those new features …
- And, there's also some preliminary (experimental) support for the even newer C++23 language features …
Bottom line –
- With GCC 11, almost all of the C++17 language features are fully supported.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|