brew llvm / clang не работает при подключении в / usr / local / bin - PullRequest
0 голосов
/ 27 февраля 2020

[MacOS 10.14.5]

Я установил llvm@9 на мою Ma c, и вызов clang с использованием полного пути /usr/local/opt/llvm@9/bin/clang++ <prog.cpp> работает нормально. Тем не менее, я хотел бы иметь возможность строить, используя эту версию, просто вызывая clang++ <prog.cpp> без необходимости каждый раз указывать полный путь. Это работает с G CC от Brew, и я могу скомпилировать, используя g++-# <prog.cpp>. Поэтому я создал символическую ссылку внутри /usr/local/bin следующим образом:

ls -s /usr/local/opt/llvm@9/bin/clang++ clang++-9

Invoking clang++-9 -v печатает сведения о версии и идентичен вызову /usr/local/opt/llvm@9/bin/clang++ -v, за исключением пути InstallerDir. Что имеет смысл.

Однако, когда я на самом деле пытаюсь что-то скомпилировать, используя clang++-9 <prog.cpp>, сборка выдает ошибку о том, что системные заголовки не могут быть найдены.

Я бы очень хотел иметь возможность легко выбирать между Xcode и Brew's Clang. Есть ли способ настроить это так, что мне не нужно экспортировать дополнительные пути и т. Д. c. в моей раковине?

Ниже приведен вывод, когда я пытаюсь создать простую программу с включенным подробным режимом. Очевидно, есть проблемы с путями:

    user@MAC:[12:10]$ clang++-9 -v gamegen.cpp
    clang version 9.0.0 (tags/RELEASE_900/final)
    Target: x86_64-apple-darwin18.6.0
    Thread model: posix
    InstalledDir: /usr/local/bin
     "/usr/local/Cellar/llvm/9.0.0_1/bin/clang-9" -cc1 -triple x86_64-apple-macosx10.14.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name gamegen.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -ggnu-pubnames -target-linker-version 512.4 -v -resource-dir /usr/local/Cellar/llvm/9.0.0_1/lib/clang/9.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -stdlib=libc++ -internal-isystem /usr/local/bin/../include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/local/include -internal-isystem /usr/local/Cellar/llvm/9.0.0_1/lib/clang/9.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -fdeprecated-macro -fdebug-compilation-dir /Users/user/Programming/Planning/PROBLEM_GENERATORS/pddl-generators/freecell -ferror-limit 19 -fmessage-length 258 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fobjc-runtime=macosx-10.14.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/tg/vymk3ysd1n14cpx7r7_q5pgw0000gn/T/gamegen-2a9405.o -x c++ gamegen.cpp
    clang -cc1 version 9.0.0 based upon LLVM 9.0.0 default target x86_64-apple-darwin18.6.0
    ignoring nonexistent directory "/usr/local/bin/../include/c++/v1"
    ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1"
    ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/local/include"
    ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Library/Frameworks"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/local/Cellar/llvm/9.0.0_1/lib/clang/9.0.0/include
     /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
     /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
    End of search list.
    gamegen.cpp:2:10: fatal error: 'iostream' file not found
    #include <iostream>
             ^~~~~~~~~~
    1 error generated.


    user@MAC:[12:30]$ /usr/local/opt/llvm@9/bin/clang++ -v gamegen.cpp
    clang version 9.0.0 (tags/RELEASE_900/final)
    Target: x86_64-apple-darwin18.6.0
    Thread model: posix
    InstalledDir: /usr/local/opt/llvm@9/bin
     "/usr/local/Cellar/llvm/9.0.0_1/bin/clang-9" -cc1 -triple x86_64-apple-macosx10.14.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name gamegen.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -ggnu-pubnames -target-linker-version 512.4 -v -resource-dir /usr/local/Cellar/llvm/9.0.0_1/lib/clang/9.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -stdlib=libc++ -internal-isystem /usr/local/opt/llvm@9/bin/../include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/local/include -internal-isystem /usr/local/Cellar/llvm/9.0.0_1/lib/clang/9.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -fdeprecated-macro -fdebug-compilation-dir /Users/user/Programming/Planning/PROBLEM_GENERATORS/pddl-generators/freecell -ferror-limit 19 -fmessage-length 258 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fobjc-runtime=macosx-10.14.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/tg/vymk3ysd1n14cpx7r7_q5pgw0000gn/T/gamegen-1ff299.o -x c++ gamegen.cpp
    clang -cc1 version 9.0.0 based upon LLVM 9.0.0 default target x86_64-apple-darwin18.6.0
    ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1"
    ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/local/include"
    ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Library/Frameworks"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/local/opt/llvm@9/bin/../include/c++/v1
     /usr/local/Cellar/llvm/9.0.0_1/lib/clang/9.0.0/include
     /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
     /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
    End of search list.
    gamegen.cpp:43:15: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
            char* suit = "CDHS";
                         ^
    gamegen.cpp:44:15: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
            char* symb = "A23456789TJQK";
                         ^
    2 warnings generated.
     "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /usr/local/Cellar/llvm/9.0.0_1/lib/libLTO.dylib -no_deduplicate -dynamic -arch x86_64 -macosx_version_min 10.14.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -o a.out /var/folders/tg/vymk3ysd1n14cpx7r7_q5pgw0000gn/T/gamegen-1ff299.o -lc++ -lSystem /usr/local/Cellar/llvm/9.0.0_1/lib/clang/9.0.0/lib/darwin/libclang_rt.osx.a
...