MacOS лягушка через Homebrew сломан под Мохаве `wchar.h` - PullRequest
0 голосов
/ 01 ноября 2018

Неудивительно, что новое обновление OSX Mojave сломало мою установку llvm в Homebrew, вот шаги, которые я попробовал:

xcode-select --install # Complained, so I installed commandLineTools from here https://developer.apple.com/download/more/
xcode-select -p /Library/Developer/CommandLineTools
xcode-select --install # Now says installed
sudo xcodebuild -license # Fails, as it says I only have CommandLineTools installed in /Library/Developer/CommandLineTools not xcode

# Try something else (all versions)
brew uninstall --force llvm
brew install llvm # yay v7 how exciting

# Only it still don't work
clang++ -std=c++17 foo.cpp -o f
In file included from foo.cpp:1:
In file included from /usr/local/Cellar/llvm/7.0.0/include/c++/v1/iostream:38:
In file included from /usr/local/Cellar/llvm/7.0.0/include/c++/v1/ios:215:
In file included from /usr/local/Cellar/llvm/7.0.0/include/c++/v1/iosfwd:90:
/usr/local/Cellar/llvm/7.0.0/include/c++/v1/wchar.h:119:15: fatal error: 'wchar.h' file not found
#include_next <wchar.h>
              ^~~~~~~~~
1 error generated.

Есть идеи? Первую половину того, что я попробовал, я обнаружил в Интернете, но в основном для более старых обновлений MacOS, возможно, Мохаве сломал вещи новым и непредсказуемым образом.

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Вот как я это решил, учитывая, что у меня есть крайние сроки подачи документов, и это меньше всего моих забот:

  1. Отключен SIP на моем Mac
  2. Символические ссылки /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include до /usr/include, как ожидается в средах POSIX.
  3. Повторно включен SIP.

Теперь я должен делать заметки, чтобы делать это каждый раз, когда выходит новое обновление OSX. Это не сломало ничего, кроме XCode, Clang (от Brew) и т.д., так что я буду держать это. Имейте в виду, однако, это может сломать ваши вещи.

0 голосов
/ 19 декабря 2018

Я сделал что-то глупое, но это все-таки решило проблему ... Не уверен, что это будет работать на вашем компьютере.

Вот что я сделал: Первоначально я установил c ++ с помощью Homebrew на свой MacBook в Мохаве ... поэтому мне пришлось вручную устанавливать Xcode CommandLineTools с помощью установщика, найденного по адресу /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg. Затем я скопировал содержимое папки "c ++" из папки /Library/Developer/CommandLineTools/usr/include/c++/v1 в папку, где я хочу, чтобы отсутствующий файл находился в /usr/local/Cellar/gcc/8.2.0/include/c++/8.2.0, при замене файлов с такими же именами.

Трюк сработал, так как теперь отсутствующий файл "wchar.h" находится именно там, где и должен быть ... Я мог бы связать ссылки задним числом. Ура!

0 голосов
/ 01 ноября 2018

Это хорошо известная проблема последних макосов. Попробуйте установить эту переменную среды, она должна решить эту проблему.

export LIBCLANG_SYSTEM_INCLUDE_DIR="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include"
...