mesmariusz
Posts: 57
Joined: Fri Feb 15, 2013 6:07 am

Grive (Google Drive) problem with compilation

Fri Feb 21, 2014 10:47 am

I'm trying to install grive follow instruction:
http://www.stuffaboutcode.com/2013/03/r ... grive.html.

But finnaly I have got

Linking CXX executable grive
../libgrive/libgrive.a(State.cc.o): In function `gr::v1::State::Write(boost::filesystem::path const&) const':
State.cc:(.text+0x19bc): undefined reference to `gr::Json::Json<long>(long const&)'
State.cc:(.text+0x1a4c): undefined reference to `gr::Json::Json<unsigned long>(unsigned long const&)'
State.cc:(.text+0x1b2c): undefined reference to `gr::Json::Json<long>(long const&)'
collect2: ld returned 1 exit status
make[2]: *** [grive/grive] Błąd 1
make[1]: *** [grive/CMakeFiles/grive_executable.dir/all] Błąd 2
make: *** [all] Błąd 2

Code: Select all

root@raspberrypi:/# cd root
root@raspberrypi:~# cd grive
root@raspberrypi:~/grive# cmake .
-- Found libgcrypt: -L/lib/arm-linux-gnueabihf -lgcrypt
-- Found JSON-C: /usr/lib/arm-linux-gnueabihf/libjson.so
-- Boost version: 1.50.0
-- Found the following Boost libraries:
--   program_options
--   filesystem
--   unit_test_framework
--   system
-- Found libbfd: /usr/lib/libbfd.so
-- Found libiberty: /usr/lib/libiberty.a
-- Boost version: 1.50.0
-- Found the following Boost libraries:
--   program_options
-- Boost version: 1.50.0
-- Configuring done
-- Generating done
-- Build files have been written to: /root/grive
root@raspberrypi:~/grive# make
[  1%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/ResponseLog.cc.o
[  3%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/Download.cc.o
[  5%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/JsonResponse.cc.o
[  7%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/Json.cc.o
[  8%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/AuthAgent.cc.o
[ 10%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/OAuth2.cc.o
[ 12%] Building CXX object libgrive/CMakeFiles/grive.dir/src/json/JsonWriter.cc.o
[ 14%] Building CXX object libgrive/CMakeFiles/grive.dir/src/json/ValResponse.cc.o
[ 16%] Building CXX object libgrive/CMakeFiles/grive.dir/src/json/ValBuilder.cc.o
[ 17%] Building CXX object libgrive/CMakeFiles/grive.dir/src/json/JsonParser.cc.o
[ 19%] Building CXX object libgrive/CMakeFiles/grive.dir/src/json/Val.cc.o
[ 21%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/MemMap.cc.o
[ 23%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/Config.cc.o
[ 25%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/StringStream.cc.o
[ 26%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/Crypt.cc.o
[ 28%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/File.cc.o
[ 30%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/OS.cc.o
[ 32%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/SignalHandler.cc.o
[ 33%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/StdStream.cc.o
[ 35%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/Exception.cc.o
[ 37%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/DateTime.cc.o
[ 39%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/CommonLog.cc.o
[ 41%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/DefaultLog.cc.o
[ 42%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/Log.cc.o
[ 44%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/CompositeLog.cc.o
[ 46%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/TreeBuilder.cc.o
[ 48%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/NodeSet.cc.o
[ 50%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/Node.cc.o
[ 51%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/String.cc.o
[ 53%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/SymbolInfo.cc.o
[ 55%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/Backtrace.cc.o
[ 57%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/Debug.cc.o
Linking CXX static library libgrive.a
[ 82%] Built target grive
Scanning dependencies of target btest
[ 83%] Building CXX object libgrive/CMakeFiles/btest.dir/test/btest/UnitTest.cc.o
[ 85%] Building CXX object libgrive/CMakeFiles/btest.dir/test/btest/ValTest.cc.o
[ 87%] Building CXX object libgrive/CMakeFiles/btest.dir/test/btest/JsonValTest.cc.o
Linking CXX executable btest
[ 87%] Built target btest
Scanning dependencies of target grive_executable
[ 89%] Building CXX object grive/CMakeFiles/grive_executable.dir/src/main.cc.o
Linking CXX executable grive
../libgrive/libgrive.a(State.cc.o): In function `gr::v1::State::Write(boost::filesystem::path const&) const':
State.cc:(.text+0x19bc): undefined reference to `gr::Json::Json<long>(long const&)'
State.cc:(.text+0x1a4c): undefined reference to `gr::Json::Json<unsigned long>(unsigned long const&)'
State.cc:(.text+0x1b2c): undefined reference to `gr::Json::Json<long>(long const&)'
collect2: ld returned 1 exit status
make[2]: *** [grive/grive] Błąd 1
make[1]: *** [grive/CMakeFiles/grive_executable.dir/all] Błąd 2
make: *** [all] Błąd 2
root@raspberrypi:~/grive#

I found it explained:

https://github.com/Grive/grive/issues/168

so I replaced faulty line inside libgrive/src/drive/State.cc by this:

Code: Select all

result.Add( "change_stamp", Json((boost::uint64_t) m_cstamp) ) ; 

But the effect was:

Code: Select all

root@raspberrypi:~/grive# make 
Scanning dependencies of target grive 
[  1%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/State.cc.o 
Linking CXX static library libgrive.a 
[ 82%] Built target grive 
Linking CXX executable btest 
[ 87%] Built target btest 
Scanning dependencies of target grive_executable 
[ 89%] Building CXX object grive/CMakeFiles/grive_executable.dir/src/main.cc.o 
Linking CXX executable grive 
../libgrive/libgrive.a(State.cc.o): In function `gr::v1::State::Write(boost::filesystem::path const&) const':
State.cc:(.text+0x19bc): undefined reference to `gr::Json::Json<long>(long const&)' 
State.cc:(.text+0x1a4c): undefined reference to `gr::Json::Json<unsigned long>(unsigned long const&)' 
collect2: ld returned 1 exit status 
make[2]: *** [grive/grive] Błąd 1 
make[1]: *** [grive/CMakeFiles/grive_executable.dir/all] Błąd 2 
make: *** [all] Błąd 2 
root@raspberrypi:~/grive# 
Could someone please help me?

I need working sollution for backup my Raspberry Pi folders into Google Drive...

Return to “General discussion”