Error while building on Raspberry Pi
felixfoertsch opened this issue · comments
Hello! I just tried building peaclock for my Raspi to use it on a nice small display. I ran into an error during compilation. Sadly I have no clue about C++ and linking and all that stuff, so I just used my Google Fu and went with trial and error.
It was a error referencing some file system issues and the way I solved it was by adding link_libraries(stdc++fs)
to the CMakeLists.txt. Source
Maybe you can make sense of it and fix it for the people coming after me. :)
The filesystem library was previously linked in the build, but was removed in commit 00e824f. I was using GCC 9, which doesn't require the library to be linked, and I forgot to update the compiler support in the README.md. A better solution though would be to add a conditional to the CMakeLists.txt file to link to the stdc++fs
library if the compiler is GCC 8. I'll make the change. Thanks for bringing this up!
Which compiler/version are you using on the Raspberry Pi? GCC 8?
Which compiler/version are you using on the Raspberry Pi? GCC 8?
$ gcc -v
gcc version 8.3.0 (Raspbian 8.3.0-6+rpi1)
I was trying to build on the raspi
, and had the same problem. Now it works fine when stdc++fs
is added to OB_LINK_LIBRARIES in CMakefile.txt
.
The latest commit, ed3d60e, adds a conditional in cmake to link to stdc++fs
if the compiler being used is GCC 8. Could you let me know if it now builds properly?
Checked out the repo with the latest commit in a clean directory and built it. I'd say it works:
pi@FFPI ~/D/peaclock> ./RUNME.sh build
Build type: release
-- The CXX compiler identification is GNU 8.3.0
-- 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
-- Building peaclock 0.4.3 in release mode:
System: Linux-5.4.51-v7+
CXX compiler: GNU 8.3.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/Developer/peaclock/build/release
Scanning dependencies of target peaclock
[ 33%] Building CXX object CMakeFiles/peaclock.dir/src/ob/string.cc.o
[ 33%] Building CXX object CMakeFiles/peaclock.dir/src/main.cc.o
[ 50%] Building CXX object CMakeFiles/peaclock.dir/src/ob/readline.cc.o
[ 66%] Building CXX object CMakeFiles/peaclock.dir/src/peaclock/tui.cc.o
[ 83%] Building CXX object CMakeFiles/peaclock.dir/src/peaclock/peaclock.cc.o
[100%] Linking CXX executable peaclock
[100%] Built target peaclock
pi@FFPI ~/D/peaclock>