Brew: Противоречие ctermid с помощью brew g ++ 9.1 - PullRequest
0 голосов
/ 19 февраля 2020

Я получаю конфликт при использовании Brew, установленной g ++ 9.1, где каким-то образом g ++ ищет в / Library / Developer:

In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/iosfwd:40,
                 from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/memory:72,
                 from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/thread:39,
                 from build/release/share/src/demux/posix/demux_ts_select_demuxer.hpp:6,
                 from build/release/share/src/demux/posix/demux_ts_select_demuxer.cpp:1:
/usr/local/Cellar/gcc/9.1.0/lib/gcc/9/gcc/x86_64-apple-darwin18/9.1.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
compilation terminated due to -Wfatal-errors.

Причина конфликта кажется очевидной, если посмотреть в установленную библиотеку brew. wchar думает, что получает свою собственную версию, но вместо этого, кажется, получает версию Apple Clang:

#pragma GCC system_header

#include <bits/c++config.h>

#if _GLIBCXX_HAVE_WCHAR_H
#include <wchar.h>
#endif


#ifndef _GLIBCXX_CWCHAR
#define _GLIBCXX_CWCHAR 1

, а затем идет по дорожке, предполагая, что у нее есть собственная версия, и делает некоторые macro crud, который не работает, потому что он на самом деле имеет версию clang от Apple.

Есть предложения, как это исправить?

...