Could not successfully build powerblock - PowerBlock Driver (opt/retropie.../build/powerblock not found)
-
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.
-
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 yourapt
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
-
@mikealves
wiringpi
is already installed on a RetroPie system, however installing it throughapt-get
is also ok - but you didn't answer my other question: did you add extra-repositories to yourapt
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!
-
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. -
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 $ -
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 librarywiringpi
. -
@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.
-
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.
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.