簡體   English   中英

CppuTest使用C ++ 11版本構建

[英]CppuTest to build with C++11 versions

在Ubuntu下安裝了g++ 4.9.0 (實驗)版本(我正在使用此版本提供的某些功能)

在構建我的代碼時,我使用腳本中的cmake ,並且它正確構建。 下面的gcc包含安裝g ++的路徑(/ mnt ...)

$_cmake_ $_dir_ -DCMAKE_CXX_COMPILER=${_gpp_} -DCMAKE_C_COMPILER=${_gcc_} -DCMAKE_BUILD_TYPE=${_build_} -DCMAKE_INSTALL_PREFIX=${_install_} -DBUILD_TESTING:BOOL=1 

現在,當我使用CppuTest為我的代碼構建單元測試時,我收到以下錯誤。

make all 
compiling UncrosserTest.cpp

In file included from /home/miguel/Desktop/Ugur/scmProject/scm/dist/dev/mfx_prod/scm/20160207/include/scm/services/primitives.hpp:4:0,
                 from /home/miguel/Desktop/Ugur/scmProject/log/lidya/src/cpp/scm/services/examples/dummy_strategy/Inside.hpp:6,
                 from AllTests/Uncrosser/UncrosserTest.cpp:7:
/usr/include/c++/4.9/experimental/optional: In member function ‘void std::experimental::_Optional_base<_Tp, _ShouldProvideDestructor>::_M_construct(_Args&& ...)’:
/usr/include/c++/4.9/experimental/optional:294:18: error: expected type-specifier
           ::new (std::__addressof(this->_M_payload))
                  ^
/usr/include/c++/4.9/experimental/optional:294:18: error: expected ‘)’
/usr/include/c++/4.9/experimental/optional: In member function ‘void std::experimental::_Optional_base<_Tp, false>::_M_construct(_Args&& ...)’:
/usr/include/c++/4.9/experimental/optional:424:18: error: expected type-specifier
           ::new (std::__addressof(this->_M_payload))
                  ^
/usr/include/c++/4.9/experimental/optional:424:18: error: expected ‘)’
make: *** [objs/AllTests/Uncrosser/UncrosserTest.o] Error 1

在CppuTest中,makefile包含了CPPUTEST_CPPFLAGS += -std=c++1y 我想這個makefile中缺少一些標志,因為我說C ++實驗庫正在我的“常規”代碼中正確構建。 我錯過了什么?

可能是包含問題,請參閱CppUTest手冊 - 與操作員新宏沖突(STL!)與我自己的重載沖突!

TL; DR

UncrosserTest你的之后UncrosserTest添加包含。

代替

#include <CppUTest/TestHarnes.h>
#include "whatever.h"

#include "whatever.h"
#include <CppUTest/TestHarnes.h>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM