I'm trying to cross compile google Protocol buffers for the Raspberry Pi,
so I can cross compile my own software which links to protobuf.
I've installed protobuf-2.6.0 to the directory
~/ExternalLibs/protobuf-2.6.0, where I perform the following steps:
cd ~/ExternalLibs/protobuf-2.6.0
./configure --disable-shared
make
make check
-- all (5/5) tests pass
sudo make install
make distclean
This should set up the initial protoc executable that can be run by my
build machine (Lenovo w540 laptop running Ubuntu 12.04) during the cross
compiling for my host, the raspberry pi.
I then run:
./configure --host=arm-linux-gnueabi CC=/opt/cross/x-tools/arm-unknown-
linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc CXX=/opt/cross/x-tools/arm-
unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-g++ --with-protoc=/usr/
bin/protoc --prefix=/home/andrewc1204/raspberrypi_crosscompile/
protobuf_xtools/
My cross compiler was built following this tutorial:
http://www.bootc.net/archives/2012/05/26/how-to-build-a-cross-compiler-for-your-raspberry-pi/.
The only extra thing I did was enable an additional c++ compiler on top of
building the c compiler in the ct-ng menus, which is why I'm able to use
the g++ compiler on top of the gcc compiler.
This ./configure seems to run, and then I call
make
The output is as follows:
make all-recursive
make[1]: Entering directory
`/home/andrewc1204/ExternalLibs/protobuf-2.6.0'
Making all in .
make[2]: Entering directory `/home/andrewc1204/ExternalLibs/protobuf-2.6
.0'
make[2]: Leaving directory
`/home/andrewc1204/ExternalLibs/protobuf-2.6.0'
Making all in src
make[2]: Entering directory
`/home/andrewc1204/ExternalLibs/protobuf-2.6.0/src'
/usr/bin/protoc -I. --cpp_out=. google/protobuf/unittest.proto
google/protobuf/unittest_empty.proto google/protobuf/unittest_import.proto
google/protobuf/unittest_import_public.proto
google/protobuf/unittest_mset.proto
google/protobuf/unittest_optimize_for.proto
google/protobuf/unittest_embed_optimize_for.proto
google/protobuf/unittest_custom_options.proto
google/protobuf/unittest_lite.proto
google/protobuf/unittest_import_lite.proto
google/protobuf/unittest_import_public_lite.proto
google/protobuf/unittest_lite_imports_nonlite.proto
google/protobuf/unittest_no_generic_services.proto
google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto
google/protobuf/unittest.proto:173:3: Expected "required", "optional",
or "repeated".
google/protobuf/unittest.proto:173:21: Missing field number.
google/protobuf/unittest.proto:610:3: Expected "required", "optional",
or "repeated".
google/protobuf/unittest.proto:610:13: Missing field number.
google/protobuf/unittest.proto:632:3: Expected "required", "optional",
or "repeated".
google/protobuf/unittest.proto:632:13: Missing field number.
google/protobuf/unittest.proto:647:3: Expected "required", "optional",
or "repeated".
google/protobuf/unittest.proto:647:13: Missing field number.
google/protobuf/unittest.proto:672:3: Expected "required", "optional",
or "repeated".
google/protobuf/unittest.proto:672:13: Missing field number.
google/protobuf/unittest.proto:853:1: Expected "required", "optional",
or "repeated".
google/protobuf/unittest.proto:853:21: Missing field number.
google/protobuf/unittest.proto:862:1: Reached end of input in message
definition (missing '}').
make[2]: *** [unittest_proto_middleman] Error 1
make[2]: Leaving directory `/home/andrewc1204/ExternalLibs/protobuf-2.6.
0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/home/andrewc1204/ExternalLibs/protobuf-2.6.0'
make: *** [all] Error 2
I'm stuck at this point, and don't know what else to check to try and debug
this problem. Any help is greatly appreciated! Please let me know if any
additional information is helpful and I will gladly supply it.
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.