Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Could not successfully build powerblock - PowerBlock Driver (opt/retropie.../build/powerblock not found)



  • I seem to get this error when I try to install though RETROPIE setup and Mac terminal.
    Could not successfully build powerblock - PowerBlock Driver (opt/retropie.../build/powerblock not found)

    Using Pie 3+
    Retropie 4.4.4.16

    I have tried removing the driver and reinstalling several times.


  • Global Moderator

    Can you post the contents of the last log file from $HOME/RetroPie-Setup/logs ? It should be timestamped and containing the actual error. Did you also update the RetroPie packages besides the RetroPie-Setup script ?



  • Log started at: Wed 3 Jul 10:29:43 EDT 2019

    RetroPie-Setup version: 4.4.16 (048bddab)
    System: Linux retropie 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l GNU/Linux

    = = = = = = = = = = = = = = = = = = = = =
    Installing dependencies for 'powerblock' : PowerBlock Driver
    = = = = = = = = = = = = = = = = = = = = =

    /home/pi/RetroPie-Setup/tmp/build/powerblock /opt/retropie/supplementary/powerblock/build

    = = = = = = = = = = = = = = = = = = = = =
    Getting sources for 'powerblock' : PowerBlock Driver
    = = = = = = = = = = = = = = = = = = = = =

    git clone --recursive --depth 1 "https://github.com/petrockblog/PowerBlock.git" "/opt/retropie/supplementary/powerblock"
    Cloning into '/opt/retropie/supplementary/powerblock'...
    Submodule 'src/lib/plog' (https://github.com/SergiusTheBest/plog.git) registered for path 'src/lib/plog'
    Cloning into '/opt/retropie/supplementary/powerblock/src/lib/plog'...
    Submodule path 'src/lib/plog': checked out 'a248b2f9cb0755d6912a5b5e4e402a4921b3e978'
    HEAD is now in branch 'master' at commit '30485dfe9e0341a442ffdc1efa9048c2fcbfccd0'
    /home/pi/RetroPie-Setup/scriptmodules/packages.sh: line 276: popd: /opt/retropie/supplementary/powerblock/build: No such file or directory

    = = = = = = = = = = = = = = = = = = = = =
    Building 'powerblock' : PowerBlock Driver
    = = = = = = = = = = = = = = = = = = = = =

    -- The C compiler identification is GNU 6.3.0
    -- The CXX compiler identification is GNU 6.3.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- 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
    -- JsonCpp Version: 1.7.7
    -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.13", minimum required is "2.6")
    -- Found Doxygen: /usr/bin/doxygen (found version "1.8.13")
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /opt/retropie/supplementary/powerblock/build
    Scanning dependencies of target jsoncpp_lib_static
    [ 11%] Building CXX object src/lib/jsoncpp/src/lib_json/CMakeFiles/jsoncpp_lib_static.dir/json_reader.cpp.o
    [ 11%] Building CXX object src/lib/jsoncpp/src/lib_json/CMakeFiles/jsoncpp_lib_static.dir/json_value.cpp.o
    In file included from /usr/include/c++/6/map:60:0,
    from /opt/retropie/supplementary/powerblock/src/lib/jsoncpp/include/json/value.h:17,
    from /opt/retropie/supplementary/powerblock/src/lib/jsoncpp/src/lib_json/json_value.cpp:8:
    /usr/include/c++/6/bits/stl_tree.h: In member function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const Json::Value::CZString&>, std::tuple<>}; _Key = Json::Value::CZString; _Val = std::pair<const Json::Value::CZString, Json::Value>; _KeyOfValue = std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >; _Compare = std::lessJson::Value::CZString; _Alloc = std::allocator<std::pair<const Json::Value::CZString, Json::Value> >]’:
    /usr/include/c++/6/bits/stl_tree.h:2193:7: note: parameter passing for argument of type ‘std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const Json::Value::CZString, Json::Value> >}’ will change in GCC 7.1
    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/c++/6/bits/stl_tree.h:2193:7: note: parameter passing for argument of type ‘std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const Json::Value::CZString, Json::Value> >}’ will change in GCC 7.1
    /usr/include/c++/6/bits/stl_tree.h: In function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::M_insert_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Arg&&, _NodeGen&) [with _Arg = std::pair<const Json::Value::CZString, Json::Value>&; _NodeGen = std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::_Alloc_node; _Key = Json::Value::CZString; _Val = std::pair<const Json::Value::CZString, Json::Value>; _KeyOfValue = std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >; _Compare = std::lessJson::Value::CZString; _Alloc = std::allocator<std::pair<const Json::Value::CZString, Json::Value> >]’:
    /usr/include/c++/6/bits/stl_tree.h:1989:7: note: parameter passing for argument of type ‘std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const Json::Value::CZString, Json::Value> >}’ will change in GCC 7.1
    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/c++/6/bits/stl_tree.h: In member function ‘Json::Value& Json::Value::operator’:
    /usr/include/c++/6/bits/stl_tree.h:950:65: note: parameter passing for argument of type ‘std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const Json::Value::CZString, Json::Value> >}’ will change in GCC 7.1
    return M_insert_unique(__pos, std::forward<_Arg>(__x), __an);
    ^
    In file included from /usr/include/c++/6/map:61:0,
    from /opt/retropie/supplementary/powerblock/src/lib/jsoncpp/include/json/value.h:17,
    from /opt/retropie/supplementary/powerblock/src/lib/jsoncpp/src/lib_json/json_value.cpp:8:
    /usr/include/c++/6/bits/stl_map.h: In member function ‘bool Json::Value::removeIndex(Json::Value::ArrayIndex, Json::Value*)’:
    /usr/include/c++/6/bits/stl_map.h:483:4: note: parameter passing for argument of type ‘std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const Json::Value::CZString, Json::Value> >}’ will change in GCC 7.1
    __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
    ^~~
    In file included from /usr/include/c++/6/map:60:0,
    from /opt/retropie/supplementary/powerblock/src/lib/jsoncpp/include/json/value.h:17,
    from /opt/retropie/supplementary/powerblock/src/lib/jsoncpp/src/lib_json/json_value.cpp:8:
    /usr/include/c++/6/bits/stl_tree.h: In member function ‘Json::Value& Json::Value::resolveReference(const char*)’:
    /usr/include/c++/6/bits/stl_tree.h:950:65: note: parameter passing for argument of type ‘std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const Json::Value::CZString, Json::Value> >}’ will change in GCC 7.1
    return M_insert_unique(__pos, std::forward<_Arg>(__x), __an);
    ^
    /usr/include/c++/6/bits/stl_tree.h: In member function ‘Json::Value& Json::Value::resolveReference(const char*, const char*)’:
    /usr/include/c++/6/bits/stl_tree.h:950:65: note: parameter passing for argument of type ‘std::_Rb_tree<Json::Value::CZString, std::pair<const Json::Value::CZString, Json::Value>, std::_Select1st<std::pair<const Json::Value::CZString, Json::Value> >, std::lessJson::Value::CZString, std::allocator<std::pair<const Json::Value::CZString, Json::Value> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const Json::Value::CZString, Json::Value> >}’ will change in GCC 7.1
    return M_insert_unique(__pos, std::forward<_Arg>(__x), __an);
    ^
    [ 17%] Building CXX object src/lib/jsoncpp/src/lib_json/CMakeFiles/jsoncpp_lib_static.dir/json_writer.cpp.o
    [ 23%] Linking CXX static library libjsoncpp.a
    [ 23%] Built target jsoncpp_lib_static
    Scanning dependencies of target jsontestrunner_exe
    Scanning dependencies of target powerblock-app
    [ 29%] Building CXX object src/lib/jsoncpp/src/jsontestrunner/CMakeFiles/jsontestrunner_exe.dir/main.cpp.o
    [ 35%] Building CXX object src/powerblock/CMakeFiles/powerblock-app.dir/PowerBlock.cpp.o
    [ 41%] Building CXX object src/powerblock/CMakeFiles/powerblock-app.dir/PowerSwitch.cpp.o
    [ 47%] Linking CXX executable jsontestrunner_exe
    [ 47%] Built target jsontestrunner_exe
    [ 52%] Building CXX object src/powerblock/CMakeFiles/powerblock-app.dir/GPIO.cpp.o
    Scanning dependencies of target jsoncpp_test
    [ 58%] Building CXX object src/lib/jsoncpp/src/test_lib_json/CMakeFiles/jsoncpp_test.dir/jsontest.cpp.o
    [ 64%] Building CXX object src/powerblock/CMakeFiles/powerblock-app.dir/PowerBlockConfiguration.cpp.o
    [ 70%] Linking CXX static library libpowerblock-app.a
    [ 70%] Built target powerblock-app
    Scanning dependencies of target powerblock
    [ 76%] Building CXX object CMakeFiles/powerblock.dir/src/powerblock/main.cpp.o
    [ 82%] Building CXX object src/lib/jsoncpp/src/test_lib_json/CMakeFiles/jsoncpp_test.dir/main.cpp.o
    [ 88%] Linking CXX executable powerblock
    /usr/lib/gcc/arm-linux-gnueabihf/6/../../../libwiringPi.so: undefined reference to `fcntl@GLIBC_2.28'
    collect2: error: ld returned 1 exit status
    CMakeFiles/powerblock.dir/build.make:97: recipe for target 'powerblock' failed
    make[2]: *** [powerblock] Error 1
    CMakeFiles/Makefile2:68: recipe for target 'CMakeFiles/powerblock.dir/all' failed
    make[1]: *** [CMakeFiles/powerblock.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 94%] Linking CXX executable jsoncpp_test
    Testing ValueTest/checkNormalizeFloatingPointStr: OK
    Testing ValueTest/memberCount: OK
    Testing ValueTest/objects: OK
    Testing ValueTest/arrays: OK
    Testing ValueTest/arrayIssue252: OK
    Testing ValueTest/null: OK
    Testing ValueTest/strings: OK
    Testing ValueTest/bools: OK
    Testing ValueTest/integers: OK
    Testing ValueTest/nonIntegers: OK
    Testing ValueTest/compareNull: OK
    Testing ValueTest/compareInt: OK
    Testing ValueTest/compareUInt: OK
    Testing ValueTest/compareDouble: OK
    Testing ValueTest/compareString: OK
    Testing ValueTest/compareBoolean: OK
    Testing ValueTest/compareArray: OK
    Testing ValueTest/compareObject: OK
    Testing ValueTest/compareType: OK
    Testing ValueTest/offsetAccessors: OK
    Testing ValueTest/typeChecksThrowExceptions: OK
    Testing ValueTest/StaticString: OK
    Testing ValueTest/CommentBefore: OK
    Testing ValueTest/zeroes: OK
    Testing ValueTest/zeroesInKeys: OK
    Testing ValueTest/specialFloats: OK
    Testing ValueTest/precision: OK
    Testing WriterTest/dropNullPlaceholders: OK
    Testing StreamWriterTest/dropNullPlaceholders: OK
    Testing StreamWriterTest/writeZeroes: OK
    Testing ReaderTest/parseWithNoErrors: OK
    Testing ReaderTest/parseWithNoErrorsTestingOffsets: OK
    Testing ReaderTest/parseWithOneError: OK
    Testing ReaderTest/parseChineseWithOneError: OK
    Testing ReaderTest/parseWithDetailError: OK
    Testing CharReaderTest/parseWithNoErrors: OK
    Testing CharReaderTest/parseWithNoErrorsTestingOffsets: OK
    Testing CharReaderTest/parseWithOneError: OK
    Testing CharReaderTest/parseChineseWithOneError: OK
    Testing CharReaderTest/parseWithDetailError: OK
    Testing CharReaderTest/parseWithStackLimit: OK
    Testing CharReaderStrictModeTest/dupKeys: OK
    Testing CharReaderFailIfExtraTest/issue164: OK
    Testing CharReaderFailIfExtraTest/issue107: OK
    Testing CharReaderFailIfExtraTest/commentAfterObject: OK
    Testing CharReaderFailIfExtraTest/commentAfterArray: OK
    Testing CharReaderFailIfExtraTest/commentAfterBool: OK
    Testing CharReaderAllowDropNullTest/issue178: OK
    Testing CharReaderAllowSingleQuotesTest/issue182: OK
    Testing CharReaderAllowZeroesTest/issue176: OK
    Testing CharReaderAllowSpecialFloatsTest/issue209: OK
    Testing BuilderTest/settings: OK
    Testing IteratorTest/distance: OK
    Testing IteratorTest/names: OK
    Testing IteratorTest/indexes: OK
    Testing IteratorTest/const: OK
    Testing RValueTest/moveConstruction: OK
    All 57 tests passed
    [ 94%] Built target jsoncpp_test
    Makefile:127: recipe for target 'all' failed
    make: *** [all] Error 2
    Could not successfully build powerblock - PowerBlock Driver (/opt/retropie/supplementary/powerblock/build/powerblock not found).

    Log ended at: Wed 3 Jul 10:31:26 EDT 2019
    Total running time: 0 hours, 1 mins, 43 secs



  • @mitu I do believe I updated the RetroPie packages besides the RetroPie-Setup script.


  • Global Moderator

    The error

    [ 88%] Linking CXX executable powerblock
    /usr/lib/gcc/arm-linux-gnueabihf/6/../../../libwiringPi.so: undefined reference to `fcntl@GLIBC_2.28'
    collect2: error: ld returned 1 exit status
    
    

    indicates you have a wiringpi library compiled agains another system (Raspbian Buster ?). Did you install it manually or you modified your apt sources to include something else than the Raspbian Stretch repositories ?

    I've run the compilation on a RetroPie 4.4.x system and I didn't get the error you have during compilation of controlblock.



  • I installed wiringpi from here:

    http://wiringpi.com/download-and-install/

    I installed it this way:

    To update or install on a Raspbian-Lite system:

    sudo apt-get install wiringpi


  • Global Moderator

    @mikealves wiringpi is already installed on a RetroPie system, however installing it through apt-get is also ok - but you didn't answer my other question: did you add extra-repositories to your apt sources ?



  • @mitu said in Could not successfully build powerblock - PowerBlock Driver (opt/retropie.../build/powerblock not found):

    Raspbian Buster

    Hey. I just followed the instructions on the WiringPi site and wound up with this.

    100%] Installing service.
    [....] Starting powerblock (via systemctl): powerblock.service.
    [100%] Built target installservice
    /home/pi/PowerBlock
    [SUCCESS] The PowerBlock driver binary is installed
    [SUCCESS] The PowerBlock service is running
    You can find the configuration file at /etc/powerblockconfig.cfg.

    Now it works fine. Thank you for your help. This noob wouldn't have figured without your help. Thanks so much for everything!


  • Global Moderator

    Glad to hear that!
    Just in case, I have just updated the ControlBlock and PowerBlock modules such that wiringpi gets installed as APT packages as part go the module installation process.



  • @petrockblog

    I had to reinstall RetroPie (long story). Now I am getting this error when I try to reinstall PowerBlockService.

    /home/pi/PowerBlock/src/powerblock/PowerBlock.cpp:24:22: fatal error: plog/Log.h: No such file or directory
    #include <plog/Log.h>
    ^
    compilation terminated.
    src/powerblock/CMakeFiles/powerblock-app.dir/build.make:62: recipe for target 'src/powerblock/CMakeFiles/powerblock-app.dir/PowerBlock.cpp.o' failed
    make[2]: *** [src/powerblock/CMakeFiles/powerblock-app.dir/PowerBlock.cpp.o] Error 1
    CMakeFiles/Makefile2:514: recipe for target 'src/powerblock/CMakeFiles/powerblock-app.dir/all' failed
    make[1]: *** [src/powerblock/CMakeFiles/powerblock-app.dir/all] Error 2
    Makefile:127: recipe for target 'all' failed
    make: *** [all] Error 2
    pi@retropie:~/PowerBlock/build $


  • Global Moderator

    Does it work if you run the quick installation command from https://github.com/petrockblog/PowerBlock#quick-installation?



  • @petrockblog said in Could not successfully build powerblock - PowerBlock Driver (opt/retropie.../build/powerblock not found):

    Does it work if you run the quick installation command from https://github.com/petrockblog/PowerBlock#quick-installation?

    That one does not work for me, build stops with

    [ 64%] Linking CXX executable powerblock
    /usr/lib/gcc/arm-linux-gnueabihf/6/../../../libwiringPi.so: undefined reference to `fcntl@GLIBC_2.28'
    collect2: error: ld returned 1 exit status
    CMakeFiles/powerblock.dir/build.make:97: die Regel für Ziel „powerblock“ scheiterte
    make[2]: *** [powerblock] Fehler 1
    CMakeFiles/Makefile2:68: die Regel für Ziel „CMakeFiles/powerblock.dir/all“ scheiterte
    make[1]: *** [CMakeFiles/powerblock.dir/all] Fehler 2
    Makefile:127: die Regel für Ziel „all“ scheiterte
    make: *** [all] Fehler 2
    Error during building binary
    [ 23%] Built target jsoncpp_lib_static
    [ 52%] Built target powerblock-app
    [ 58%] Linking CXX executable powerblock
    /usr/lib/gcc/arm-linux-gnueabihf/6/../../../libwiringPi.so: undefined reference to `fcntl@GLIBC_2.28'
    collect2: error: ld returned 1 exit status
    CMakeFiles/powerblock.dir/build.make:97: die Regel für Ziel „powerblock“ scheiterte
    make[2]: *** [powerblock] Fehler 1
    CMakeFiles/Makefile2:68: die Regel für Ziel „CMakeFiles/powerblock.dir/all“ scheiterte
    make[1]: *** [CMakeFiles/powerblock.dir/all] Fehler 2
    Makefile:127: die Regel für Ziel „all“ scheiterte
    make: *** [all] Fehler 2
    Error during installation of binary
    Scanning dependencies of target installservice
    [100%] Installing service.
    [ ok ] Starting powerblock (via systemctl): powerblock.service.
    [100%] Built target installservice
    /home/pi/PowerBlock
    [SUCCESS] The PowerBlock driver binary is installed
    [ERROR] The PowerBlock service is not running
    You can find the configuration file at /etc/powerblockconfig.cfg.
    


  • Had to install wiringpi manually, and to execute steps from https://github.com/petrockblog/PowerBlock manually. Seems to be a version mismatch with library wiringpi.



  • @superpie3k Thanks for your responses. I was away on vacation and only just got back to this. I had the same experience as above. "Had to install wiringpi manually, and to execute steps from https://github.com/petrockblog/PowerBlock manually. Seems to be a version mismatch with library wiringpi." But I got it working now.


  • Global Moderator

    For future note: I removed the dependency to WiringPi now. Please see also https://retropie.org.uk/forum/topic/23328/powerblock-driver-quick-installation-fails/5.


Log in to reply
 

Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.