我正在尝试安装 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