在 18.04 上安装 cpptest 时,弃用的 auto_ptr 出现问题

在 18.04 上安装 cpptest 时,弃用的 auto_ptr 出现问题

我正在尝试安装 cpptesthttps://sourceforge.net/projects/cpptest/我遇到了编译错误。

错误示例如下:

g++ -DHAVE_CONFIG_H -I. -I../config      -g -O2 -MT mytest.o -MD -MP -MF .deps/mytest.Tpo -c -o mytest.o mytest.cpp
In file included from ../src/cpptest.h:34:0,
                 from mytest.cpp:39:
../src/cpptest-suite.h:58:17: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   void add(std::auto_ptr<Suite> suite);
                 ^~~~~~~~
In file included from /usr/include/c++/7/memory:80:0,
                 from ../src/cpptest-suite.h:33,
                 from ../src/cpptest.h:34,
                 from mytest.cpp:39:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;

查看 /usr/include/c++/7/bits/unique_ptr.h:51,我看到:

 #if _GLIBCXX_USE_DEPRECATED
   template<typename> class auto_ptr;
 #endif

似乎没有任何方法可以关闭 _GLIBCXX_USE_DEPRECATED。如果是这样,这似乎与报告错误的默认设置相冲突。

此时应该做什么才正确?

答案1

这些消息是警告,而不是错误。

可以通过传递编译标志来抑制它们-Wno-deprecated

   -Wno-deprecated
       Do not warn about usage of deprecated features.

前任。

./configure CXXFLAGS=-Wno-deprecated
make

或者,你可以安装并使用不会弃用这些代码功能的旧版本的编译器

./configure CC=/usr/bin/gcc-5 CXX=/usr/bin/g++-5

相关内容