Hi,

Joined on another project that's heavily using Protobuf (Apache Arrow) and 
running into strange macro-and-other-symbol visibility issues when I'm 
including generated Protobuf headers in more source files (e.g. in 
application headers).  I'm guessing this may be a more common general 
problem but I didn't find anything similar enough to the issues I'm 
encountering when searching for similar errors.  For example I'm seeing 
(truncated as things get less interesting and somewhat repetitive down the 
log):

/opt/homebrew/bin/ccache /Library/Developer/CommandLineTools/usr/bin/c++ 
-DARROW_EXTRA_ERROR_CONTEXT -DARROW_FLIGHT_SQL_EXPORTING -DARROW_HAVE_NEON 
-DARROW_WITH_RE2 -DARROW_WITH_TIMING_TESTS -DARROW_WITH_ZLIB 
-DGRPC_NAMESPACE_FOR_TLS_CREDENTIALS_OPTIONS=grpc::experimental 
-DGRPC_USE_CERTIFICATE_VERIFIER -DGRPC_USE_TLS_CHANNEL_CREDENTIALS_OPTIONS 
-DURI_STATIC_BUILD 
-I/Users/pauln/bq/git/arrow/cpp/session-managemen-build-debug/src 
-I/Users/pauln/bq/git/arrow/cpp/src 
-I/Users/pauln/bq/git/arrow/cpp/src/generated -isystem 
/opt/homebrew/include -isystem 
/Users/pauln/bq/git/arrow/cpp/thirdparty/flatbuffers/include -isystem 
/Users/pauln/bq/git/arrow/cpp/thirdparty/hadoop/include -isystem 
/opt/homebrew/opt/[email protected]/include -isystem 
/Users/pauln/bq/git/arrow/cpp/session-managemen-build-debug/jemalloc_ep-prefix/src
 
-fno-aligned-new -Qunused-arguments -fcolor-diagnostics -Wall -Wextra 
-Wdocumentation -Wshorten-64-to-32 -Wno-missing-braces 
-Wno-unused-parameter -Wno-constant-logical-operand 
-Wno-return-stack-address -Wno-unknown-warning-option -Wno-pass-failed 
-march=armv8-a -g -Werror -O0 -ggdb -arch arm64 -isysroot 
/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk -fPIC -std=c++17 
-MD -MT 
src/arrow/flight/sql/CMakeFiles/arrow_flight_sql_objlib.dir/client.cc.o -MF 
src/arrow/flight/sql/CMakeFiles/arrow_flight_sql_objlib.dir/client.cc.o.d 
-o src/arrow/flight/sql/CMakeFiles/arrow_flight_sql_objlib.dir/client.cc.o 
-c /Users/pauln/bq/git/arrow/cpp/src/arrow/flight/sql/client.cc
In file included from 
/Users/pauln/bq/git/arrow/cpp/src/arrow/flight/sql/client.cc:22: 
In file included from 
/Users/pauln/bq/git/arrow/cpp/src/arrow/flight/sql/client.h:24: 
/Users/pauln/bq/git/arrow/cpp/session-managemen-build-debug/src/arrow/flight/sql/FlightSql.pb.h:47:3:
 
error: expected expression 
static const uint32_t offsets[]; 
^ 
/Users/pauln/bq/git/arrow/cpp/session-managemen-build-debug/src/arrow/flight/sql/FlightSql.pb.h:46:32:
 
error: variable has incomplete type 'struct ARROW_FLIGHT_SQL_EXPORT' 
struct ARROW_FLIGHT_SQL_EXPORT TableStruct_FlightSql_2eproto { 
^ 
/Users/pauln/bq/git/arrow/cpp/session-managemen-build-debug/src/arrow/flight/sql/FlightSql.pb.h:46:8:
 
note: forward declaration of 'ARROW_FLIGHT_SQL_EXPORT' 
struct ARROW_FLIGHT_SQL_EXPORT TableStruct_FlightSql_2eproto { 
^ 
/Users/pauln/bq/git/arrow/cpp/session-managemen-build-debug/src/arrow/flight/sql/FlightSql.pb.h:49:73:
 
error: no member named 'DescriptorTable' in namespace 
'google::protobuf::internal' 
ARROW_FLIGHT_SQL_EXPORT extern const 
::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable 
descriptor_table_FlightSql_2eproto; 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 
/Users/pauln/bq/git/arrow/cpp/session-managemen-build-debug/src/arrow/flight/sql/FlightSql.pb.h:49:88:
 
error: expected ';' after top level declarator 
ARROW_FLIGHT_SQL_EXPORT extern const 
::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable 
descriptor_table_FlightSql_2eproto; 
[...]

Thanks in advance for any insight!

Cheers
~Paul

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/37530cbb-e951-44c8-82a4-40716feb97een%40googlegroups.com.

Reply via email to