-
Notifications
You must be signed in to change notification settings - Fork 216
Open
Description
Hello!
I am able to compile fine for x86_64
on this system. When I try to cross-compile for aarch64
, Autoconf is refusing to use the header files for protoc that are definitely present:
./configure --build x86_64-linux-gnu --host aarch64-linux-gnu CPPFLAGS=-Wno-deprecated-declarations
checking for libprotobuf... yes
checking for protoc... /usr/bin/protoc
checking protoc version... 3.12.4
checking google/protobuf/compiler/command_line_interface.h usability... no
checking google/protobuf/compiler/command_line_interface.h presence... yes
configure: WARNING: google/protobuf/compiler/command_line_interface.h: present but cannot be compiled
configure: WARNING: google/protobuf/compiler/command_line_interface.h: check for missing prerequisite headers?
configure: WARNING: google/protobuf/compiler/command_line_interface.h: see the Autoconf documentation
configure: WARNING: google/protobuf/compiler/command_line_interface.h: section "Present But Cannot Be Compiled"
configure: WARNING: google/protobuf/compiler/command_line_interface.h: proceeding with the compiler's result
configure: WARNING: ## --------------------------------------------- ##
configure: WARNING: ## Report this to [email protected] ##
configure: WARNING: ## --------------------------------------------- ##
checking for google/protobuf/compiler/command_line_interface.h... no
configure: error: Cannot find the protoc header files
This appears to be coming from this auto-generated bit in ola.m4
:
if test "$with_ola_protoc_plugin" != "no"; then
OLA_PROTOC="$PROTOC --plugin=protoc-gen-cppservice=${with_ola_protoc_plugin}";
echo "set ola_protoc to $OLA_PROTOC"
else
OLA_PROTOC="$PROTOC --plugin=protoc-gen-cppservice=\$(top_builddir)/protoc/ola_protoc_plugin${EXEEXT}";
AC_CHECK_HEADER(
[google/protobuf/compiler/command_line_interface.h],
[],
AC_MSG_ERROR([Cannot find the protoc header files]))
SAVED_LIBS=$LIBS
LIBS="$LIBS -lprotoc"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([#include <google/protobuf/compiler/command_line_interface.h>],
[google::protobuf::compiler::CommandLineInterface cli])],
[TEST_LIBS="$TEST_LIBS -lprotoc"] [],
[AC_MSG_ERROR([cannot find libprotoc])])
LIBS=$SAVED_LIBS
fi
AC_SUBST([OLA_PROTOC])
AM_CONDITIONAL(BUILD_OLA_PROTOC_PLUGIN, test "${with_ola_protoc_plugin}" = "no")
])
I also tried this, but make all
then fails because the protoc/ola_protoc_plugin
executable doesn't actually get compiled:
./configure --build x86_64-linux-gnu --host aarch64-linux-gnu --with-protoc=/usr/bin/protoc --with-ola-protoc-plugin=protoc/ola_protoc_plugin CPPFLAGS=-Wno-deprecated-declarations
$ make all -j2
/usr/bin/protoc --plugin=protoc-gen-cppservice=protoc/ola_protoc_plugin --cppservice_out ./common/protocol --proto_path ./common/protocol ./common/protocol/Ola.proto
/usr/bin/protoc --plugin=protoc-gen-cppservice=protoc/ola_protoc_plugin --cppservice_out ./common/protocol --proto_path ./common/protocol ./common/protocol/Ola.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:648] No syntax specified for the proto file: Ola.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:648] No syntax specified for the proto file: Ola.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
protoc/ola_protoc_plugin: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--cppservice_out: protoc-gen-cppservice: Plugin failed with status code 1.
make: *** [Makefile:19184: common/protocol/OlaService.pb.h] Error 1
make: *** Waiting for unfinished jobs....
protoc/ola_protoc_plugin: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--cppservice_out: protoc-gen-cppservice: Plugin failed with status code 1.
make: *** [Makefile:19184: common/protocol/OlaService.pb.cpp] Error 1
Metadata
Metadata
Assignees
Labels
No labels