That is great, Adam, thanks very much. On Saturday, January 27, 2018 at 1:29:41 AM UTC+8, Adam Cozzette wrote: > > Great, I'm glad that worked--that was just a guess, but I happen to have a > pull request that will fully qualify types like std::map and std::pair, > instead of relying on "using" statements in common.h: > https://github.com/google/protobuf/pull/4209 So once I get that pull > request merged, the problem should disappear without you having to make > that local modification. > > On Thu, Jan 25, 2018 at 9:59 PM, <[email protected] <javascript:>> > wrote: > >> Yes it went away after I modified with map to std::map. Thanks Adam. >> Is this the best way or just a workaround? >> >> br >> Haisheng >> >> On Friday, January 26, 2018 at 7:42:01 AM UTC+8, Adam Cozzette wrote: >>> >>> Does the error go away if you replace map with std::map? >>> >>> On Mon, Jan 22, 2018 at 9:20 PM, <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> I've read this topic which helped me a lot: >>>> >>>> https://groups.google.com/forum/#!searchin/protobuf/arm%7Csort:date/protobuf/BbYvBRqQyUQ/XHrCGz2cBQAJ >>>> >>>> >>>> Previously, I tried to build 3.5.0, then I meet the js_embed error. >>>> According to the suggestion given by the above topic, I tried some older >>>> version, like 3.1.0 and 3.0.2, but both failed at the same error: >>>> >>>> *error: reference to 'map' is ambiguous* >>>> >>>> Could anyone help? >>>> Thanks. >>>> Haisheng >>>> >>>> *Some information:* >>>> xxxx@xxxx-ubuntu:protobuf-3.0.2$ protoc --version >>>> libprotoc 3.5.1 >>>> xxxx@xxxx-ubuntu:protobuf-3.0.2$ gcc -E -xc++ - -v >>>> Using built-in specs. >>>> COLLECT_GCC=gcc >>>> Target: x86_64-linux-gnu >>>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu >>>> 5.4.0-6ubuntu1~16.04.4' >>>> --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs >>>> --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr >>>> --program-suffix=-5 --enable-shared --enable-linker-build-id >>>> --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix >>>> --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu >>>> --enable-libstdcxx-debug --enable-libstdcxx-time=yes >>>> --with-default-libstdcxx-abi=new --enable-gnu-unique-object >>>> --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib >>>> --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo >>>> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre >>>> --enable-java-home >>>> --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 >>>> --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 >>>> --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar >>>> --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 >>>> --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib >>>> --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu >>>> --host=x86_64-linux-gnu --target=x86_64-linux-gnu >>>> Thread model: posix >>>> gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) >>>> COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64' >>>> /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus -E -quiet -v -imultiarch >>>> x86_64-linux-gnu -D_GNU_SOURCE - -mtune=generic -march=x86-64 >>>> -fstack-protector-strong -Wformat -Wformat-security >>>> ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/5" >>>> ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" >>>> ignoring nonexistent directory >>>> "/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/include" >>>> #include "..." search starts here: >>>> #include <...> search starts here: >>>> >>>> >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x >>>> >>>> >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/sysroot/usr/include >>>> /usr/include/c++/5 >>>> /usr/include/x86_64-linux-gnu/c++/5 >>>> /usr/include/c++/5/backward >>>> /usr/lib/gcc/x86_64-linux-gnu/5/include >>>> /usr/local/include >>>> /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed >>>> /usr/include/x86_64-linux-gnu >>>> /usr/include >>>> End of search list. >>>> >>>> *>>>>>>>>>> bash script code goes here >>>>>>>>>>* >>>> # I've already build toolchain for arm architecture. >>>> >>>> export >>>> NDK=/home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/ >>>> export SYSROOT=$NDK/sysroot/ >>>> >>>> export TOOLCHAIN=$NDK/ >>>> TOOL=arm-linux-androideabi >>>> export PATH=$PATH:$TOOLCHAIN/bin:$TOOLCHAIN/${TOOL}/bin >>>> export CC="$TOOLCHAIN/bin/arm-linux-androideabi-gcc --sysroot $SYSROOT" >>>> export CXX="$TOOLCHAIN/bin/arm-linux-androideabi-g++ --sysroot $SYSROOT" >>>> export CXXSTL=$NDK/include/c++/4.9.x >>>> >>>> >>>> pushd protobuf-3.0.2 >>>> >>>> mkdir build >>>> TOOLCHAIN_INC=$TOOLCHAIN/include/c++/4.9.x >>>> TOOLCHAIN_LIB=$TOOLCHAIN/lib/gcc/${TOOL}/4.9.x >>>> SYSROOT_INC=${SYSROOT}/usr/include >>>> SYSROOT_LIB=${SYSROOT}/usr/lib >>>> >>>> ./configure --prefix=$(pwd)/build \ >>>> --host=arm-linux-androideabi \ >>>> --with-sysroot=$SYSROOT \ >>>> --enable-static \ >>>> --disable-shared \ >>>> --enable-cross-compile \ >>>> --with-protoc=protoc LIBS="-lgcc" \ >>>> CFLAGS="-march=armv7-a" \ >>>> CXXFLAGS="-march=armv7-a -I${TOOLCHAIN_INC} -I${SYSROOT_INC} >>>> -L${TOOLCHAIN_LIB} -L${SYSROOT_LIB}" >>>> >>>> export C_INCLUDE_PATH=${TOOLCHAIN_INC}:${SYSROOT_INC} >>>> export CPLUS_INCLUDE_PATH=${TOOLCHAIN_INC}:${SYSROOT_INC} >>>> >>>> make clean >>>> make >>>> >>>> >>>> *>>>>>>>>>> bash script code stops here >>>>>>>>>>* >>>> >>>> I also tried the ./configure shared by the above topic. >>>> But neither way works. >>>> >>>> >>>> >>>> *>>>>>>>>>> error message goes here >>>>>>>>>>* >>>> libtool: compile: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/bin/arm-linux-androideabi-g++ >>>> >>>> -DHAVE_CONFIG_H -I. -I.. -DHAVE_PTHREAD=1 -DHAVE_ZLIB=1 -Wall >>>> -Wno-sign-compare -O2 -g -DNDEBUG -MT google/protobuf/compiler/importer.lo >>>> -MD -MP -MF google/protobuf/compiler/.deps/importer.Tpo -c >>>> google/protobuf/compiler/importer.cc -fPIC -DPIC -o >>>> google/protobuf/compiler/.libs/importer.o >>>> In file included from ./google/protobuf/compiler/importer.h:45:0, >>>> from google/protobuf/compiler/importer.cc:51: >>>> ./google/protobuf/descriptor_database.h:181:5: error: reference to >>>> 'map' is ambiguous >>>> map<string, Value> by_name_; >>>> ^ >>>> In file included from >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/set:389:0, >>>> from ./google/protobuf/compiler/importer.h:42, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/__tree:1490:77: >>>> >>>> note: candidates are: template<class, class, class, class> class >>>> std::__ndk1::map >>>> template <class, class, class, class> friend class >>>> _LIBCPP_TEMPLATE_VIS map; >>>> >>>> ^ >>>> In file included from ./google/protobuf/descriptor_database.h:40:0, >>>> from ./google/protobuf/compiler/importer.h:45, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/map:609:11: >>>> >>>> note: template<class _Key, class _Tp, class _Compare, >>>> class >>>> _Allocator> class std::__ndk1::map >>>> class map; >>>> ^ >>>> In file included from ./google/protobuf/compiler/importer.h:45:0, >>>> from google/protobuf/compiler/importer.cc:51: >>>> ./google/protobuf/descriptor_database.h:181:5: error: 'map' does not >>>> name a type >>>> map<string, Value> by_name_; >>>> ^ >>>> ./google/protobuf/descriptor_database.h:182:5: error: reference to >>>> 'map' is ambiguous >>>> map<string, Value> by_symbol_; >>>> ^ >>>> In file included from >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/set:389:0, >>>> from ./google/protobuf/compiler/importer.h:42, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/__tree:1490:77: >>>> >>>> note: candidates are: template<class, class, class, class> class >>>> std::__ndk1::map >>>> template <class, class, class, class> friend class >>>> _LIBCPP_TEMPLATE_VIS map; >>>> >>>> ^ >>>> In file included from ./google/protobuf/descriptor_database.h:40:0, >>>> from ./google/protobuf/compiler/importer.h:45, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/map:609:11: >>>> >>>> note: template<class _Key, class _Tp, class _Compare, >>>> class >>>> _Allocator> class std::__ndk1::map >>>> class map; >>>> ^ >>>> In file included from ./google/protobuf/compiler/importer.h:45:0, >>>> from google/protobuf/compiler/importer.cc:51: >>>> ./google/protobuf/descriptor_database.h:182:5: error: 'map' does not >>>> name a type >>>> map<string, Value> by_symbol_; >>>> ^ >>>> ./google/protobuf/descriptor_database.h:183:5: error: reference to >>>> 'map' is ambiguous >>>> map<pair<string, int>, Value> by_extension_; >>>> ^ >>>> In file included from >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/set:389:0, >>>> from ./google/protobuf/compiler/importer.h:42, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/__tree:1490:77: >>>> >>>> note: candidates are: template<class, class, class, class> class >>>> std::__ndk1::map >>>> template <class, class, class, class> friend class >>>> _LIBCPP_TEMPLATE_VIS map; >>>> >>>> ^ >>>> In file included from ./google/protobuf/descriptor_database.h:40:0, >>>> from ./google/protobuf/compiler/importer.h:45, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/map:609:11: >>>> >>>> note: template<class _Key, class _Tp, class _Compare, >>>> class >>>> _Allocator> class std::__ndk1::map >>>> class map; >>>> ^ >>>> In file included from ./google/protobuf/compiler/importer.h:45:0, >>>> from google/protobuf/compiler/importer.cc:51: >>>> ./google/protobuf/descriptor_database.h:183:5: error: 'map' does not >>>> name a type >>>> map<pair<string, int>, Value> by_extension_; >>>> ^ >>>> ./google/protobuf/descriptor_database.h:238:14: error: expected >>>> nested-name-specifier before 'map' >>>> typename map<string, Value>::iterator FindLastLessOrEqual( >>>> ^ >>>> ./google/protobuf/descriptor_database.h:238:14: error: expected ';' at >>>> end of member declaration >>>> ./google/protobuf/descriptor_database.h:238:17: error: expected >>>> unqualified-id before '<' token >>>> typename map<string, Value>::iterator FindLastLessOrEqual( >>>> ^ >>>> In file included from ./google/protobuf/compiler/importer.h:46:0, >>>> from google/protobuf/compiler/importer.cc:51: >>>> ./google/protobuf/compiler/parser.h:559:11: error: reference to 'map' >>>> is ambiguous >>>> typedef map< >>>> ^ >>>> In file included from >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/set:389:0, >>>> from ./google/protobuf/compiler/importer.h:42, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/__tree:1490:77: >>>> >>>> note: candidates are: template<class, class, class, class> class >>>> std::__ndk1::map >>>> template <class, class, class, class> friend class >>>> _LIBCPP_TEMPLATE_VIS map; >>>> >>>> ^ >>>> In file included from ./google/protobuf/descriptor_database.h:40:0, >>>> from ./google/protobuf/compiler/importer.h:45, >>>> from google/protobuf/compiler/importer.cc:51: >>>> /home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/armeabi-android-toolchain/include/c++/4.9.x/map:609:11: >>>> >>>> note: template<class _Key, class _Tp, class _Compare, >>>> class >>>> _Allocator> class std::__ndk1::map >>>> class map; >>>> ^ >>>> In file included from ./google/protobuf/compiler/importer.h:46:0, >>>> from google/protobuf/compiler/importer.cc:51: >>>> ./google/protobuf/compiler/parser.h:559:11: error: 'map' does not name >>>> a type >>>> typedef map< >>>> ^ >>>> ./google/protobuf/compiler/parser.h:562:3: error: 'LocationMap' does >>>> not name a type >>>> LocationMap location_map_; >>>> ^ >>>> Makefile:3868: recipe for target 'google/protobuf/compiler/importer.lo' >>>> failed >>>> make[3]: *** [google/protobuf/compiler/importer.lo] Error 1 >>>> make[3]: Leaving directory >>>> '/home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/protobuf-3.0.2/src' >>>> Makefile:1973: recipe for target 'all' failed >>>> make[2]: *** [all] Error 2 >>>> make[2]: Leaving directory >>>> '/home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/protobuf-3.0.2/src' >>>> Makefile:1249: recipe for target 'all-recursive' failed >>>> make[1]: *** [all-recursive] Error 1 >>>> make[1]: Leaving directory >>>> '/home/xxxx/Android/Sdk/ndk-bundle/sources/protobuf/protobuf-3.0.2' >>>> Makefile:1155: recipe for target 'all' failed >>>> make: *** [all] Error 2 >>>> >>>> >>>> *>>>>>>>>>> error message stops here >>>>>>>>>>* >>>> >>>> -- >>>> 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 post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/protobuf. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/protobuf. >> For more options, visit https://groups.google.com/d/optout. >> > >
-- 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 post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
