使用mingw编译器错误对Windows进行升压测试:putenv未声明

时间:2014-02-17 10:34:41

标签: windows gcc c++11 mingw boost-test

我正在尝试使用mingw在windows上编译库,它使用boost。 我编译了boost:

 bootstrap mingw
 b2 toolset=gcc 

之后我用cmake和mingw构建库。 构建dll本身工作正常,但是当我尝试构建测试时,我得到:

C:/boost/boost_1_55_0/boost/test/utils/runtime/config.hpp:95:51: error: 'putenv'
 was not declared in this scope
 putenv( const_cast<char*>( fs.str().c_str() ) );

所以错误来自一个提升标题,我不知道如何解决这个问题。

我正在努力建立的回购:https://github.com/linges/daestruct

它使用c99和c ++ 11。

1 个答案:

答案 0 :(得分:3)

这似乎是提升中的一个错误。它也发生在其他人身上:

https://github.com/BoostGSoC/boost.afio/commit/1b06855b6e20a01a3c4461c6d2d54e16eb3c8e21

解决方案(或更好:解决方法)是在包含boost::test之前添加以下行:

#ifdef __MINGW32__
// Mingw doesn't define putenv() needed by Boost.Test
extern int putenv(char*);
#endif