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].
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.

Reply via email to