From 477f799fb6b98cca51d1ad1345708eb5610b016d Mon Sep 17 00:00:00 2001 From: "kenton@google.com" Date: Wed, 7 Oct 2009 21:38:11 +0000 Subject: [PATCH] Improve error message regarding proto_path not matching .proto file. --- src/google/protobuf/compiler/command_line_interface.cc | 6 +++++- .../protobuf/compiler/command_line_interface_unittest.cc | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/google/protobuf/compiler/command_line_interface.cc b/src/google/protobuf/compiler/command_line_interface.cc index 3629f682c0..3eba348632 100644 --- a/src/google/protobuf/compiler/command_line_interface.cc +++ b/src/google/protobuf/compiler/command_line_interface.cc @@ -439,7 +439,11 @@ bool CommandLineInterface::MakeInputsBeProtoPathRelative( } else { cerr << input_files_[i] << ": File does not reside within any path " "specified using --proto_path (or -I). You must specify a " - "--proto_path which encompasses this file." << endl; + "--proto_path which encompasses this file. Note that the " + "proto_path must be an exact prefix of the .proto file " + "names -- protoc is too dumb to figure out when two paths " + "(e.g. absolute and relative) are equivalent (it's harder " + "than you think)." << endl; } return false; } diff --git a/src/google/protobuf/compiler/command_line_interface_unittest.cc b/src/google/protobuf/compiler/command_line_interface_unittest.cc index 0784e7817f..9da41c02a2 100644 --- a/src/google/protobuf/compiler/command_line_interface_unittest.cc +++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc @@ -882,7 +882,11 @@ TEST_F(CommandLineInterfaceTest, CwdRelativeInputNotMappedError) { ExpectErrorText( "$tmpdir/foo.proto: File does not reside within any path " "specified using --proto_path (or -I). You must specify a " - "--proto_path which encompasses this file.\n"); + "--proto_path which encompasses this file. Note that the " + "proto_path must be an exact prefix of the .proto file " + "names -- protoc is too dumb to figure out when two paths " + "(e.g. absolute and relative) are equivalent (it's harder " + "than you think).\n"); } TEST_F(CommandLineInterfaceTest, CwdRelativeInputNotFoundAndNotMappedError) {