Yes, it works! Thank you, Kenton :) And I got another error report:
./ -I. --cpp_out=. sh: ./: Execute permission denied. *** Error exit code 126 which is located in line 2552 of src/Makefile : 2551 unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs) 2552 ./$^ -I$(srcdir) --cpp_out=. 2553 touch unittest_proto_middleman I noticed that there's some comments above the line: 2548 # For reference, if we didn't have to worry about VPATH (i.e., building from 2549 # a directory other than the package root), we could have just written this: 2550 # ./protoc$(EXEEXT) -I$(srcdir) --cpp_out=. $(protoc_inputs) I don't worry about VPATH, so I modified the line as below: 2551 unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs) 2552 ./protoc$(EXEEXT) -I$(srcdir) --cpp_out=. $(protoc_inputs) 2553 touch unittest_proto_middleman Then everything is O.K. :) BTW, I noticed lots of warnings printed during the whole process of compiling and linking, like this: libtool: compile: aCC -DHAVE_CONFIG_H -I. -I.. -D_REENTRANT -mthreads -ext -Aa -c +Maked google/protobuf/compiler/cpp/cpp_message.cc -o cpp_message.o >/dev/null 2>&1 source='google/protobuf/compiler/cpp/cpp_message_field.cc' object='cpp_message_field.lo' libtool=yes \ DEPDIR=.deps depmode=hp2 /bin/sh ../depcomp \ /bin/sh ../libtool --tag=CXX --mode=compile aCC -DHAVE_CONFIG_H - I. -I.. -D_REENTRANT -mthreads -ext -Aa -c -o cpp_message_field.lo `test -f 'google/protobuf/compiler/cpp/cpp_message_field.cc' || echo './'`google/protobuf/compiler/cpp/cpp_message_field.cc libtool: compile: aCC -DHAVE_CONFIG_H -I. -I.. -D_REENTRANT -mthreads -ext -Aa -c +Maked google/protobuf/compiler/cpp/cpp_message_field.cc - DPIC -o .libs/cpp_message_field.o aCC: warning 901: unknown option: `-hreads': use +help for online documentation. /bin/sh ../libtool --tag=CXX --mode=link aCC -D_REENTRANT - mthreads -ext -Aa -version-info 4:0:0 -o libprotoc.la -rpath /BEA/ icscomp/soft/GNU/lib code_generator.lo command_line_interface.lo cpp_enum.lo cpp_enum_field.lo cpp_extension.lo cpp_field.lo cpp_file.lo cpp_generator.lo cpp_helpers.lo cpp_message.lo cpp_message_field.lo cpp_primitive_field.lo cpp_service.lo cpp_string_field.lo java_enum.lo java_enum_field.lo java_extension.lo java_field.lo java_file.lo java_generator.lo java_helpers.lo java_message.lo java_message_field.lo java_primitive_field.lo java_service.lo python_generator.lo libprotobuf.la libtool: link: aCC -b -Wl,+h -Wl,libprotoc.so.4 -Wl,+nodefaultrpath - o .libs/libprotoc.so.4.0 .libs/code_generator.o .libs/ command_line_interface.o .libs/cpp_enum.o .libs/cpp_enum_field.o .libs/ cpp_extension.o .libs/cpp_field.o .libs/cpp_file.o .libs/ cpp_generator.o .libs/cpp_helpers.o .libs/cpp_message.o .libs/ cpp_message_field.o .libs/cpp_primitive_field.o .libs/ cpp_service.o .libs/cpp_string_field.o .libs/java_enum.o .libs/ java_enum_field.o .libs/java_extension.o .libs/java_field.o .libs/ java_file.o .libs/java_generator.o .libs/java_helpers.o .libs/ java_message.o .libs/java_message_field.o .libs/ java_primitive_field.o .libs/java_service.o .libs/python_generator.o -Wl,+b -Wl,/BEA/icscomp/kk/google/protobuf-2.2.0/src/.libs:/BEA/ icscomp/soft/GNU/lib ./.libs/libprotobuf.so -mthreads -mthreads aCC: warning 901: unknown option: `-hreads': use +help for online documentation. aCC: warning 901: unknown option: `-hreads': use +help for online documentation. I guess this is caused by protobuf-2.2.0/m4/acx_pthread.m4. Maybe you can take a look at that little problem when you're free. On Nov 14, 1:47 am, Kenton Varda <ken...@google.com> wrote: > Line 477 of src/google/protobuf/compiler/command_line_interface.cc says: > proto_path_.push_back(make_pair("", ".")); > Try changing it to: > proto_path_.push_back(make_pair(string(""), string("."))); > > If this works I will commit it to SVN. > > On Fri, Nov 13, 2009 at 3:09 AM, Jackie <junkang.w...@gmail.com> wrote: > > > Hello Kenton, > > > My system is 64-bit. I wrote a small sample to test strtoll(), and > > surprisedly found it is not enabled by default, actually an extra > > option "-ext" is needed. As for the "iter has already been declared" > > problem, there is also an extra option: "-Wc,ansi_for_scope,on", but > > this option can not passed into autoconf directly due to its strange > > form. Lucky thing is that we can enable this option by another way: "- > > AA" or "-Aa". That is exactly what I've done now. Here's my compiling > > command line: > > $ ./configure CXXFLAGS="-ext -AA" > > > Unfortunately, my good luck can not last to the end :( > > Another error is reported as below, which seems to tell me that aCC's > > standard header file is wrong. I'm confused. > > pls kindly gimme some help. THANK YOU! > > > " > > Making all in src > > source='google/protobuf/compiler/command_line_interface.cc' > > object='command_line_interface.lo' libtool=yes \ > > DEPDIR=.deps depmode=hp2 /bin/sh ../depcomp \ > > /bin/sh ../libtool --tag=CXX --mode=compile aCC -DHAVE_CONFIG_H - > > I. -I.. -D_REENTRANT -mthreads -ext -Aa -c -o > > command_line_interface.lo `test -f 'google/protobuf/compiler/ > > command_line_interface.cc' || echo './'`google/protobuf/compiler/ > > command_line_interface.cc > > libtool: compile: aCC -DHAVE_CONFIG_H -I. -I.. -D_REENTRANT -mthreads > > -ext -Aa -c +Maked google/protobuf/compiler/command_line_interface.cc > > -DPIC -o .libs/command_line_interface.o > > aCC: warning 901: unknown option: `-hreads': use +help for online > > documentation. > > "/opt/aCC/include_std/utility", line 103: error #2144: a value of type > > "const char *" cannot be used to initialize an entity of type > > "std::pair<char [1], char [2]>::first_type" > > : first (__x), second (__y) { } > > ^ > > detected during: > > instantiation of "std::pair<_TypeT, _TypeU>::pair(const > > std::pair<_TypeT, _TypeU>::first_type &, const std::pair<_TypeT, > > _TypeU>::second_type &) [with _TypeT=char [1], _TypeU=char [2]]" at > > line 181 > > instantiation of "std::pair<_TypeT, _TypeU> std::make_pair > > (const _TypeT &, const _TypeU &) [with _TypeT=char [1], _TypeU=char > > [2]]" at line 477 of "google/protobuf/compiler/ > > command_line_interface.cc" > > > "/opt/aCC/include_std/utility", line 103: error #2144: a value of type > > "const char *" cannot be used to initialize an entity of type > > "std::pair<char [1], char [2]>::second_type" > > : first (__x), second (__y) { } > > ^ > > detected during: > > instantiation of "std::pair<_TypeT, _TypeU>::pair(const > > std::pair<_TypeT, _TypeU>::first_type &, const std::pair<_TypeT, > > _TypeU>::second_type &) [with _TypeT=char [1], _TypeU=char [2]]" at > > line 181 > > instantiation of "std::pair<_TypeT, _TypeU> std::make_pair > > (const _TypeT &, const _TypeU &) [with _TypeT=char [1], _TypeU=char > > [2]]" at line 477 of "google/protobuf/compiler/ > > command_line_interface.cc" > > > 2 errors detected in the compilation of "google/protobuf/compiler/ > > command_line_interface.cc". > > *** Error exit code 1 > > > Stop. > > *** Error exit code 1 > > > Stop. > > *** Error exit code 1 > > > Stop. > > " > > > On Oct 29, 5:05 am, Kenton Varda <ken...@google.com> wrote: > > > It appears that your system lacks strtoll(). You'll need to replace it > > > somehow. Is your system 64-bit? If so, strtol() should work fine. > > There's > > > actually an #ifdef near the top of strutil.h which deals with this for > > other > > > systems. > > > > As for the "iter has already been declared" problem, it looks like your > > > compiler is using very old rules regarding scope of variables declared in > > > for() loops. I noticed that it is also suspiciously complaining that it > > > doesn't recognize the "-ansi_for_scope" flag, which it appears you > > specified > > > yourself. Presumably getting this flag to work would fix the problem. > > > > On Tue, Oct 27, 2009 at 11:04 PM, Jackie <junkang.w...@gmail.com> wrote: > > > > > I tried to compile protobuf many times on different HP machines with > > > > version 2.1 and 2.2, but all failed. The failure reason is same as > > > > below. Does anybody can gimme some advice ? Thank you in advance! > > > > > libtool: compile: aCC -DHAVE_CONFIG_H -I. -I.. -D_REENTRANT - > > > > ansi_for_scope on -mthreads -c +Maked google/protobuf/io/ > > > > zero_copy_stream_impl_lite.cc -o zero_copy_stream_impl_lite.o >/dev/ > > > > null 2>&1 > > > > source='google/protobuf/stubs/strutil.cc' object='strutil.lo' > > > > libtool=yes \ > > > > DEPDIR=.deps depmode=hp2 /bin/sh ../depcomp \ > > > > /bin/sh ../libtool --tag=CXX --mode=compile aCC - > > > > DHAVE_CONFIG_H -I. -I.. -D_REENTRANT -mthreads -Wc,- > > > > ansi_for_scope,on -c -o strutil.lo `test -f 'google/protobuf/stubs/ > > > > strutil.cc' || echo './'`google/protobuf/stubs/strutil.cc > > > > libtool: compile: aCC -DHAVE_CONFIG_H -I. -I.. -D_REENTRANT - > > > > ansi_for_scope on -mthreads -c +Maked google/protobuf/stubs/ > > > > strutil.cc -DPIC -o .libs/strutil.o > > > > aCC: warning 901: unknown option: `-ansi_for_scope': use +help for > > > > online documentation. > > > > aCC: warning 901: unknown option: `-hreads': use +help for online > > > > documentation. > > > > aCC: warning 1913: `on' does not exist or cannot be read > > > > "./google/protobuf/stubs/strutil.h", line 301: error #2020: identifier > > > > "strtoll" is undefined > > > > return strtoll(nptr, endptr, base); > > > > ^ > > > > > "./google/protobuf/stubs/strutil.h", line 307: error #2020: identifier > > > > "strtoull" is undefined > > > > return strtoull(nptr, endptr, base); > > > > ^ > > > > > "google/protobuf/stubs/strutil.cc", line 217: error #2101: "iter" has > > > > already > > > > been declared in the current scope > > > > for (ITERATOR iter = start; iter != end; ++iter) { > > > > ^ > > > > detected during instantiation of "void > > > > google::protobuf::JoinStringsIterator(const > > > > ITERATOR &, > > > > const ITERATOR &, const char *, std::string *) > > > > [with > > > > ITERATOR=std::vector<std::string, > > > > std::allocator<std::string>>::const_iterator]" at > > > > line 228 > > > > > "google/protobuf/stubs/strutil.cc", line 662: warning #2177-D: > > > > function > > > > "google::protobuf::PlaceNum" was declared but never > > > > referenced > > > > static inline char* PlaceNum(char* p, int num, char prev_sep) { > > > > ^ > > > > > 3 errors detected in the compilation of "google/protobuf/stubs/ > > > > strutil.cc". > > > > *** Error exit code 1 > > > > > Stop. > > > > *** Error exit code 1 > > > > > Stop. > > > > *** Error exit code 1 > > > > > Here's part of config.log: > > > > > $ ./configure CXXFLAGS=-Wc,-ansi_for_scope,on --prefix=/BEA/icscomp/ > > > > soft/GNU > > > > > ## --------- ## > > > > ## Platform. ## > > > > ## --------- ## > > > > > hostname = SID-1 > > > > uname -m = ia64 > > > > uname -r = B.11.23 > > > > uname -s = HP-UX > > > > uname -v = U > > > > > /usr/bin/uname -p = unknown > > > > /bin/uname -X = unknown > > > > > /bin/arch = unknown > > > > /usr/bin/arch -k = unknown > > > > /usr/convex/getsysinfo = unknown > > > > /usr/bin/hostinfo = unknown > > > > /bin/machine = unknown > > > > /usr/bin/oslevel = unknown > > > > /bin/universe = unknown --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/protobuf?hl=en -~----------~----~----~----~------~----~------~--~---