Page 1 of 4 123 ... LastLast
Results 1 to 10 of 39

Thread: cmake or gcc issue; filesystem not found

  1. #1

    Default 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.

  2. #2
    Join Date
    Jun 2008
    Location
    East of Podunk
    Posts
    32,922
    Blog Entries
    15

    Default Re: cmake or gcc issue; filesystem not found

    Quote Originally Posted by gariac View Post
    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!

  3. #3

    Default 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

  4. #4

    Default Re: cmake or gcc issue; filesystem not found

    Quote Originally Posted by krakopo View Post
    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)

  5. #5
    Join Date
    Feb 2010
    Location
    Germany
    Posts
    4,788

    Cool Re: cmake or gcc issue; filesystem not found

    Quote Originally Posted by gariac View Post
    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 …

  6. #6
    Join Date
    Apr 2011
    Location
    Texas USA
    Posts
    438

    Default 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

  7. #7

    Default Re: cmake or gcc issue; filesystem not found

    Quote Originally Posted by krakopo View Post
    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.

  8. #8

    Default Re: cmake or gcc issue; filesystem not found

    Quote Originally Posted by tckosvic View Post
    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.

  9. #9

    Default Re: cmake or gcc issue; filesystem not found

    Quote Originally Posted by dcurtisfra View Post
    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.

  10. #10
    Join Date
    Feb 2010
    Location
    Germany
    Posts
    4,788

    Cool Re: cmake or gcc issue; filesystem not found

    Quote Originally Posted by gariac View Post
    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.

Page 1 of 4 123 ... LastLast

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
  •