Skip to content

Compilation fails #201

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
chazanov opened this issue Mar 11, 2019 · 14 comments
Open

Compilation fails #201

chazanov opened this issue Mar 11, 2019 · 14 comments

Comments

@chazanov
Copy link

I've tried with either clang 7 and 9, both fail.

clang -c -ggdb3 -march=native -Wall -Wno-unused -O3 -D_GNU_SOURCE  worker-web.c -o worker-web.o
In file included from worker-web.c:12:
In file included from ./tdata.h:10:
./gtfs-realtime.pb-c.h:10:1: error: unknown type name 'PROTOBUF_C_BEGIN_DECLS'
PROTOBUF_C_BEGIN_DECLS
^
./gtfs-realtime.pb-c.h:13:1: error: expected identifier or '('
typedef struct _TransitRealtime__FeedMessage TransitRealtime__FeedMessage;
^
./gtfs-realtime.pb-c.h:325:23: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
                     (TransitRealtime__FeedMessage         *message);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
./gtfs-realtime.pb-c.h:327:29: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
                     (const TransitRealtime__FeedMessage   *message);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
./gtfs-realtime.pb-c.h:329:29: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
                     (const TransitRealtime__FeedMessage   *message,
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
./gtfs-realtime.pb-c.h:332:29: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
                     (const TransitRealtime__FeedMessage   *message,
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
./gtfs-realtime.pb-c.h:334:1: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
TransitRealtime__FeedMessage *
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
./gtfs-realtime.pb-c.h:340:23: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
                     (TransitRealtime__FeedMessage *message,
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
./gtfs-realtime.pb-c.h:582:25: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
                 (const TransitRealtime__FeedMessage *message,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
./gtfs-realtime.pb-c.h:659:1: error: unknown type name 'PROTOBUF_C_END_DECLS'
PROTOBUF_C_END_DECLS
^
In file included from worker-web.c:12:
./tdata.h:14:1: error: expected identifier or '('
typedef uint32_t calendar_t;
^
./tdata.h:74:5: error: unknown type name 'calendar_t'
    calendar_t dst_active;
    ^
./tdata.h:106:5: error: unknown type name 'calendar_t'
    calendar_t *trip_active;
    ^
./tdata.h:107:5: error: unknown type name 'calendar_t'
    calendar_t *route_active;
    ^
./tdata.h:115:5: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
    TransitRealtime__FeedMessage *alerts;
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
                                            ^
In file included from worker-web.c:12:
./tdata.h:173:1: error: unknown type name 'calendar_t'
calendar_t *tdata_trip_masks_for_route(tdata_t*, uint32_t route_index);
^
In file included from worker-web.c:14:
./router.h:36:5: error: unknown type name 'calendar_t'
    calendar_t mask;
    ^
./router.h:52:5: error: unknown type name 'calendar_t'
    calendar_t day_mask;
    ^
./router.h:100:5: error: unknown type name 'calendar_t'
    calendar_t day_mask; // bit for the day on which we are searching, relative to the timetable calendar
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
@skinkie
Copy link
Contributor

skinkie commented Mar 11, 2019

Looking at the first error message something happens with your protocol buffers includes. If you would disable the realtime component, it is likely you can at least proceed testing. I have recently compiled rrrr with both gcc and clang without issues, but consider our enormous number of branches, knowing which branch you tried would also help.

@chazanov
Copy link
Author

I've tried the master branch. How can I disable realtime?

@skinkie
Copy link
Contributor

skinkie commented Mar 15, 2019

Can you try the tdata4 branch?

@chazanov
Copy link
Author

With tdata4 I'm getting

clang -DRRRR_STRICT -DRRRR_TDATA_IO_DYNAMIC -DRRRR_FAKE_REALTIME -DRRRR_VALGRIND -DRRRR_BITSET_64 -Wextra -Wall -ansi -pedantic -DRRRR_DEBUG -DRRRR_INFO -DRRRR_TDATA -ggdb -O0 -lm -lprotobuf-c -o cli cli.c router.c tdata.c tdata_validation.c bitset.c router_request.c router_result.c util.c tdata_realtime_expanded.c tdata_realtime_alerts.c tdata_io_v4_dynamic.c radixtree.c gtfs-realtime.pb-c.c geometry.c router_dump.c hashgrid.c plan_render_text.c polyline.c json.c plan_render_otp.c api.c set.c string_pool.c hashgrid_street_network.c street_network.c
clang-7: error: no such file or directory: 'gtfs-realtime.pb-c.c'

@skinkie
Copy link
Contributor

skinkie commented Mar 16, 2019

@chazanov have you actually got protocol buffers and protobuf-c installed?

@chazanov
Copy link
Author

chazanov commented Mar 16, 2019

@skinkie Yes, of course (protobuf 3.7.0 and p-c 1.3.1):

protobuf /usr/bin/protoc
protobuf /usr/include/google/
protobuf /usr/include/google/protobuf/
protobuf /usr/include/google/protobuf/any.h
protobuf /usr/include/google/protobuf/any.pb.h
protobuf /usr/include/google/protobuf/any.proto
protobuf /usr/include/google/protobuf/api.pb.h
protobuf /usr/include/google/protobuf/api.proto
protobuf /usr/include/google/protobuf/arena.h
protobuf /usr/include/google/protobuf/arena_impl.h
protobuf /usr/include/google/protobuf/arenastring.h
protobuf /usr/include/google/protobuf/compiler/
protobuf /usr/include/google/protobuf/compiler/code_generator.h
protobuf /usr/include/google/protobuf/compiler/command_line_interface.h
protobuf /usr/include/google/protobuf/compiler/cpp/
protobuf /usr/include/google/protobuf/compiler/cpp/cpp_generator.h
protobuf /usr/include/google/protobuf/compiler/csharp/
protobuf /usr/include/google/protobuf/compiler/csharp/csharp_generator.h
protobuf /usr/include/google/protobuf/compiler/csharp/csharp_names.h
protobuf /usr/include/google/protobuf/compiler/importer.h
protobuf /usr/include/google/protobuf/compiler/java/
protobuf /usr/include/google/protobuf/compiler/java/java_generator.h
protobuf /usr/include/google/protobuf/compiler/java/java_names.h
protobuf /usr/include/google/protobuf/compiler/js/
protobuf /usr/include/google/protobuf/compiler/js/js_generator.h
protobuf /usr/include/google/protobuf/compiler/js/well_known_types_embed.h
protobuf /usr/include/google/protobuf/compiler/objectivec/
protobuf /usr/include/google/protobuf/compiler/objectivec/objectivec_generator.h
protobuf /usr/include/google/protobuf/compiler/objectivec/objectivec_helpers.h
protobuf /usr/include/google/protobuf/compiler/parser.h
protobuf /usr/include/google/protobuf/compiler/php/
protobuf /usr/include/google/protobuf/compiler/php/php_generator.h
protobuf /usr/include/google/protobuf/compiler/plugin.h
protobuf /usr/include/google/protobuf/compiler/plugin.pb.h
protobuf /usr/include/google/protobuf/compiler/plugin.proto
protobuf /usr/include/google/protobuf/compiler/python/
protobuf /usr/include/google/protobuf/compiler/python/python_generator.h
protobuf /usr/include/google/protobuf/compiler/ruby/
protobuf /usr/include/google/protobuf/compiler/ruby/ruby_generator.h
protobuf /usr/include/google/protobuf/descriptor.h
protobuf /usr/include/google/protobuf/descriptor.pb.h
protobuf /usr/include/google/protobuf/descriptor.proto
protobuf /usr/include/google/protobuf/descriptor_database.h
protobuf /usr/include/google/protobuf/duration.pb.h
protobuf /usr/include/google/protobuf/duration.proto
protobuf /usr/include/google/protobuf/dynamic_message.h
protobuf /usr/include/google/protobuf/empty.pb.h
protobuf /usr/include/google/protobuf/empty.proto
protobuf /usr/include/google/protobuf/extension_set.h
protobuf /usr/include/google/protobuf/extension_set_inl.h
protobuf /usr/include/google/protobuf/field_mask.pb.h
protobuf /usr/include/google/protobuf/field_mask.proto
protobuf /usr/include/google/protobuf/generated_enum_reflection.h
protobuf /usr/include/google/protobuf/generated_enum_util.h
protobuf /usr/include/google/protobuf/generated_message_reflection.h
protobuf /usr/include/google/protobuf/generated_message_table_driven.h
protobuf /usr/include/google/protobuf/generated_message_util.h
protobuf /usr/include/google/protobuf/has_bits.h
protobuf /usr/include/google/protobuf/implicit_weak_message.h
protobuf /usr/include/google/protobuf/inlined_string_field.h
protobuf /usr/include/google/protobuf/io/
protobuf /usr/include/google/protobuf/io/coded_stream.h
protobuf /usr/include/google/protobuf/io/gzip_stream.h
protobuf /usr/include/google/protobuf/io/printer.h
protobuf /usr/include/google/protobuf/io/strtod.h
protobuf /usr/include/google/protobuf/io/tokenizer.h
protobuf /usr/include/google/protobuf/io/zero_copy_stream.h
protobuf /usr/include/google/protobuf/io/zero_copy_stream_impl.h
protobuf /usr/include/google/protobuf/io/zero_copy_stream_impl_lite.h
protobuf /usr/include/google/protobuf/map.h
protobuf /usr/include/google/protobuf/map_entry.h
protobuf /usr/include/google/protobuf/map_entry_lite.h
protobuf /usr/include/google/protobuf/map_field.h
protobuf /usr/include/google/protobuf/map_field_inl.h
protobuf /usr/include/google/protobuf/map_field_lite.h
protobuf /usr/include/google/protobuf/map_type_handler.h
protobuf /usr/include/google/protobuf/message.h
protobuf /usr/include/google/protobuf/message_lite.h
protobuf /usr/include/google/protobuf/metadata.h
protobuf /usr/include/google/protobuf/metadata_lite.h
protobuf /usr/include/google/protobuf/parse_context.h
protobuf /usr/include/google/protobuf/port.h
protobuf /usr/include/google/protobuf/port_def.inc
protobuf /usr/include/google/protobuf/port_undef.inc
protobuf /usr/include/google/protobuf/reflection.h
protobuf /usr/include/google/protobuf/reflection_ops.h
protobuf /usr/include/google/protobuf/repeated_field.h
protobuf /usr/include/google/protobuf/service.h
protobuf /usr/include/google/protobuf/source_context.pb.h
protobuf /usr/include/google/protobuf/source_context.proto
protobuf /usr/include/google/protobuf/struct.pb.h
protobuf /usr/include/google/protobuf/struct.proto
protobuf /usr/include/google/protobuf/stubs/
protobuf /usr/include/google/protobuf/stubs/bytestream.h
protobuf /usr/include/google/protobuf/stubs/callback.h
protobuf /usr/include/google/protobuf/stubs/casts.h
protobuf /usr/include/google/protobuf/stubs/common.h
protobuf /usr/include/google/protobuf/stubs/fastmem.h
protobuf /usr/include/google/protobuf/stubs/hash.h
protobuf /usr/include/google/protobuf/stubs/logging.h
protobuf /usr/include/google/protobuf/stubs/macros.h
protobuf /usr/include/google/protobuf/stubs/mutex.h
protobuf /usr/include/google/protobuf/stubs/once.h
protobuf /usr/include/google/protobuf/stubs/platform_macros.h
protobuf /usr/include/google/protobuf/stubs/port.h
protobuf /usr/include/google/protobuf/stubs/status.h
protobuf /usr/include/google/protobuf/stubs/stl_util.h
protobuf /usr/include/google/protobuf/stubs/stringpiece.h
protobuf /usr/include/google/protobuf/stubs/strutil.h
protobuf /usr/include/google/protobuf/stubs/template_util.h
protobuf /usr/include/google/protobuf/text_format.h
protobuf /usr/include/google/protobuf/timestamp.pb.h
protobuf /usr/include/google/protobuf/timestamp.proto
protobuf /usr/include/google/protobuf/type.pb.h
protobuf /usr/include/google/protobuf/type.proto
protobuf /usr/include/google/protobuf/unknown_field_set.h
protobuf /usr/include/google/protobuf/util/
protobuf /usr/include/google/protobuf/util/delimited_message_util.h
protobuf /usr/include/google/protobuf/util/field_comparator.h
protobuf /usr/include/google/protobuf/util/field_mask_util.h
protobuf /usr/include/google/protobuf/util/json_util.h
protobuf /usr/include/google/protobuf/util/message_differencer.h
protobuf /usr/include/google/protobuf/util/time_util.h
protobuf /usr/include/google/protobuf/util/type_resolver.h
protobuf /usr/include/google/protobuf/util/type_resolver_util.h
protobuf /usr/include/google/protobuf/wire_format.h
protobuf /usr/include/google/protobuf/wire_format_lite.h
protobuf /usr/include/google/protobuf/wire_format_lite_inl.h
protobuf /usr/include/google/protobuf/wrappers.pb.h
protobuf /usr/include/google/protobuf/wrappers.proto
protobuf /usr/lib/libprotobuf-lite.so
protobuf /usr/lib/libprotobuf-lite.so.18
protobuf /usr/lib/libprotobuf-lite.so.18.0.0
protobuf /usr/lib/libprotobuf.so
protobuf /usr/lib/libprotobuf.so.18
protobuf /usr/lib/libprotobuf.so.18.0.0
protobuf /usr/lib/libprotoc.so
protobuf /usr/lib/libprotoc.so.18
protobuf /usr/lib/libprotoc.so.18.0.0
protobuf /usr/lib/pkgconfig/
protobuf /usr/lib/pkgconfig/protobuf-lite.pc
protobuf /usr/lib/pkgconfig/protobuf.pc

protobuf-c /usr/bin/protoc-c
protobuf-c /usr/bin/protoc-gen-c
protobuf-c /usr/include/google/
protobuf-c /usr/include/google/protobuf-c/
protobuf-c /usr/include/google/protobuf-c/protobuf-c.h
protobuf-c /usr/include/protobuf-c/
protobuf-c /usr/include/protobuf-c/protobuf-c.h
protobuf-c /usr/lib/libprotobuf-c.so
protobuf-c /usr/lib/libprotobuf-c.so.1
protobuf-c /usr/lib/libprotobuf-c.so.1.0.0
protobuf-c /usr/lib/pkgconfig/
protobuf-c /usr/lib/pkgconfig/libprotobuf-c.pc

@skinkie
Copy link
Contributor

skinkie commented Mar 16, 2019

I just did this:

git clone git@github.com:bliksemlabs/rrrr.git 
cd rrrr/
git checkout tdata4
mkdir build
cd build/
cmake ..
make

Now if you convince cmake to use clang, I am interested in your results.

@chazanov
Copy link
Author

chazanov commented Apr 3, 2019

@skinkie It now builds perfectly.

Probably that's trivial, but for me there is No rule to make target 'install'.

@skinkie
Copy link
Contributor

skinkie commented Apr 3, 2019

@skinkie
Copy link
Contributor

skinkie commented Apr 3, 2019

@chazanov I guess there is no install ;-) there are binaries, a static library, some python code.

@chazanov
Copy link
Author

chazanov commented Apr 3, 2019

https://github.com/libcheck/check

Nowaday github records all of my mistakes ;)

So there is nothing more than a 180 kb binary called ./cli ?

@skinkie
Copy link
Contributor

skinkie commented Apr 3, 2019

Your profile seems to be hidden enough ;-) nobody knows you work for a fruit or number company ;-)

@chazanov
Copy link
Author

chazanov commented Apr 3, 2019

@skinkie Yes, I'm very cautious with photos or information on me. I'm just a single OSM guy doing something very different in real life.

I'm always interested in doing things like navigation or geocoding with much less memory than everybody else. Example: GraphHopper is actually fast, but fat. Pelias is a gigantic geocoder, but quite heavy.

@skinkie
Copy link
Contributor

skinkie commented Apr 3, 2019

You can probably figure out my e-mail by git log ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants