#ifdef适用于Windows + MSVC,Cygwin64 + gcc失败 - 为什么?

时间:2018-06-15 10:10:51

标签: gcc cygwin environment-variables c-preprocessor

我在我正在处理的库中使用以下代码:

#if defined(_WIN32) && ! defined(__BORLANDC__)
    _putenv("PO_TEST_FOO=1");
#else
    putenv(const_cast<char*>("PO_TEST_FOO=1"));
#endif

这适用于Windows + MSVC和Linux + GCC(以及Linux + clang等)。但是 - 它与Cygwin64和GCC fails(链接到appveyor构建日志; GCC版本是v6.4.0)。

  1. 为什么会失败?
  2. 它真的应该失败,也就是我的错?
  3. 我如何确保它不会(不破坏其他内容)?

0 个答案:

没有答案