Problems building on a Raspberry Pi
RaphaelMaschinsen opened this issue · 6 comments
I'm having trouble building the library on a Raspberry Pi Zero 2W (Linux_ 5.15.76-v8+ #1597 SMP PREEMPT Fri Nov 4 12:16:41 GMT 2022 aarch64 GNU/Linux).
The first problem I had was related to quickpool. I had a a CMake Error when configuring with cmake version 3.18.4 at quickpool/CMakeLists.txt:21 (add_library):
add_library INTEFACE library requires no source arguments.
I was able to successfully configure the project using the prebuilt newest version of cmake (3.25.1-linux-aarch64). Unfortunately running make in the root directory the build process now fails with the error:
src/proto/CMakeFiles/Proto.dir/build.make:73: *** target pattern contains no '%'. Stop.
I cannot reproduce the error on my desktop environment running Arch Linux and the same cmake version 3.25.1. Everything works as expected there.
The according lines in the autogenerated makefile read:
72 src/proto/MumbleTCP.pb.h: src/proto/MumbleTCP.proto
73 src/proto/MumbleTCP.pb.h: src/proto/protobuf::protoc
74 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/pi/libmumble/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Running cpp protocol buffer compiler on MumbleTCP.proto"
75 cd /home/pi/libmumble/src/proto && protobuf::protoc --cpp_out /home/pi/libmumble/src/proto -I /home/pi/libmumble/src/proto /home/pi/libmumble/src/proto/MumbleTCP.proto
It appears that there is a problem with either the name src/proto/MumbleTCP.pb.h or src/proto/protobuf::protoc. One possible problem could be that regular expressions in make get evaluated by the shell and maybe the shell is the problem.
As further information, I have also cross-compiled on Arch Linux for aarch64 using CMake 3.24.2. This build process has the same error.
@davidebeatrici any idea?
Is the issue still present?
Is the issue still present?
Yepp.
This happens if you do not have a protobuf-complier.
The solution:
apt install protobuf-compiler
Oh, this is actually an issue with the CMake module. It looks like the target exists, but is actually empty.
I have successfully built the library on a Raspberry Pi 2W running ARM64 Raspberry Pi OS Lite, which is based on Debian Bookworm (12).
protobuf-compiler
is required, but I didn't check what kind of error is thrown without it. In any case, it's out of our scope as the CMake module is provided upstream.