yog*_*ger 0 c++ eclipse-cdt c++11
我刚刚开始学习 C++,试图学习一些基础知识。现在在 Eclipse 中使用 gcc 版本 5.2.1 进行编译,项目使用 c++11 参数进行编译。
\n\n现在,当我尝试时,就会出现包含问题#include <map>(只要编译器进入其中,我什至不使用映射,只是尝试包含它,这并不重要)。据我所知,地图本身有问题,但似乎不对。这里是简短的失败片段。
08:54:59 **** Incremental Build of configuration Debug for project RpnCalculator ****\nmake all \nBuilding file: ../Test/AddShouldBeRegistered.cpp\nInvoking: Cross G++ Compiler\ng++ -I/home/yoger/Coding/cpputest/include -O0 -g3 -Wall -c -fmessage- length=0 -std=c++11 -v -MMD -MP -MF"Test/AddShouldBeRegistered.d" -MT"Test/AddShouldBeRegistered.d" -o "Test/AddShouldBeRegistered.o" "../Test/AddShouldBeRegistered.cpp"\nUsing built-in specs.\nCOLLECT_GCC=g++\nTarget: x86_64-linux-gnu\nConfigured with: ../src/configure -v --with-pkgversion=\'Ubuntu 5.2.1-22ubuntu2\' --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\nThread model: posix\ngcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2) \nCOLLECT_GCC_OPTIONS=\'-I\' \'/home/yoger/Coding/cpputest/include\' \'-O0\' \'-g3\' \'-Wall\' \'-c\' \'-fmessage-length=0\' \'-std=c++11\' \'-v\' \'-MMD\' \'-MP\' \'-MF\' \'Test/AddShouldBeRegistered.d\' \'-MT\' \'Test/AddShouldBeRegistered.d\' \'-o\' \'Test/AddShouldBeRegistered.o\' \'-shared-libgcc\' \'-mtune=generic\' \'-march=x86-64\'\n/usr/lib/gcc/x86_64-linux-gnu/5/cc1plus -quiet -v -I /home/yoger/Coding/cpputest/include -imultiarch x86_64-linux-gnu -MMD Test/AddShouldBeRegistered.d -MF Test/AddShouldBeRegistered.d -MP -MT Test/AddShouldBeRegistered.d -dD -D_GNU_SOURCE ../Test/AddShouldBeRegistered.cpp -quiet -dumpbase AddShouldBeRegistered.cpp -mtune=generic -march=x86-64 -auxbase-strip Test/AddShouldBeRegistered.o -g3 -O0 -Wall -std=c++11 -version -fmessage-length=0 -fstack-protector-strong -Wformat-security -o /tmp/cc8xNfBA.s\nGNU C++11 (Ubuntu 5.2.1-22ubuntu2) version 5.2.1 20151010 (x86_64-linux-gnu)\ncompiled by GNU C version 5.2.1 20151010, GMP version 6.0.0, MPFR version 3.1.3, MPC version 1.0.3\nGGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072\nignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/5"\nignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"\nignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/include"\n#include "..." search starts here:\n#include <...> search starts here:\n /home/yoger/Coding/cpputest/include\n /usr/include/c++/5\n /usr/include/x86_64-linux-gnu/c++/5\n /usr/include/c++/5/backward\n /usr/lib/gcc/x86_64-linux-gnu/5/include\n /usr/local/include\n /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed\n /usr/include/x86_64-linux-gnu\n /usr/include\nEnd of search list.\nGNU C++11 (Ubuntu 5.2.1-22ubuntu2) version 5.2.1 20151010 (x86_64-linux-gnu)\ncompiled by GNU C version 5.2.1 20151010, GMP version 6.0.0, MPFR version 3.1.3, MPC version 1.0.3\nGGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072\nCompiler executable checksum: 5ed623d6fe11f4bcc1afee70f77e33b0\nIn file included from /usr/include/c++/5/map:60:0,\n from ../Test/../MathOperations/MathOperationFactory.h:11,\n from ../Test/ShouldBeRegistered.h:13,\n from ../Test/AddShouldBeRegistered.cpp:9:\n/usr/include/c++/5/bits/stl_tree.h: In member function \xe2\x80\x98void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_construct_node(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, _Args&& ...)\xe2\x80\x99:\n/usr/include/c++/5/bits/stl_tree.h:528:14: error: \xe2\x80\x98__node\xe2\x80\x99 does not name a type\n ::new(__node) _Rb_tree_node<_Val>;\n ^\nTest/subdir.mk:66: recipe for target \'Test/AddShouldBeRegistered.o\' failed\nmake: *** [Test/AddShouldBeRegistered.o] Error 1\n\n08:54:59 Build Finished (took 361ms)\nRun Code Online (Sandbox Code Playgroud)\n\n好的,我包含地图的文件
\n\n#ifndef MATHOPERATIONFACTORY_H_\n#define MATHOPERATIONFACTORY_H_\n\n#include <map>\n#include <string>\n\nclass MathOperation;\n\nclass MathOperationFactory {\npublic:\n MathOperationFactory();\n virtual ~MathOperationFactory();\n virtual MathOperation& findOperationNamed(const std::string &name);\nprivate:\n typedef std::map<std::string, MathOperation*> OperationMap;\n typedef OperationMap::iterator iterator;\n OperationMap _operationsByName;\n};\n\n#endif\nRun Code Online (Sandbox Code Playgroud)\n
这是与 Cpputest 的内存泄漏检测功能相关的问题。您可以应用 Cpputest 文档页面中描述的解决方案之一。
http://cpputest.github.io/manual.html#memory_leak_detection