Скачал с сайта clang+llvm-15.0.2-arm64-apple-darwin21.0.tar.xz распаковал. Если не использовать стандартную библиотеку, то работает, .o файлы компилирует. Если написать #include <stdio.h> то уже не находит. В каталоге /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include нужный хедер лежит.
Если руками прописать, то компилируется но выводит кучу предупреждений.
Как правильно сделать? Чтобы ничего не прописывать, чтобы clang просто работал.
% cat test.c
#include <stdio.h>
int main(void)
{
puts("Hello, world");
return 0;
}
% ../tmp/clang+llvm-15.0.2-arm64-apple-darwin21.0/bin/clang test.c -I/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include -L/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/lib
In file included from test.c:1:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdio.h:64:
/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/_stdio.h:93:16: warning: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Wnullability-completeness]
unsigned char *_base;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/_stdio.h:93:16: note: insert '_Nullable' if the pointer may be null
unsigned char *_base;
^
_Nullable
и очень много подобных предупреждений
13 warnings generated.
% ./a.out
Hello, world
Здравствуйте, vsb, Вы писали:
vsb>Встроенный не подходит.
vsb>Скачал с сайта clang+llvm-15.0.2-arm64-apple-darwin21.0.tar.xz распаковал. Если не использовать стандартную библиотеку, то работает, .o файлы компилирует. Если написать #include <stdio.h> то уже не находит. В каталоге /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include нужный хедер лежит.
vsb>Если руками прописать, то компилируется но выводит кучу предупреждений.
-Wno-nullability-completeness ?
vsb>Как правильно сделать? Чтобы ничего не прописывать, чтобы clang просто работал.
Хз. Обычно brew install llvm
Здравствуйте, kov_serg, Вы писали:
vsb>>Встроенный не подходит.
vsb>>Скачал с сайта clang+llvm-15.0.2-arm64-apple-darwin21.0.tar.xz распаковал. Если не использовать стандартную библиотеку, то работает, .o файлы компилирует. Если написать #include <stdio.h> то уже не находит. В каталоге /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include нужный хедер лежит.
vsb>>Если руками прописать, то компилируется но выводит кучу предупреждений. _>-Wno-nullability-completeness ?
Не, мне надо как-то сделать чтобы вообще без всяких флагов работал, как встроенный.
vsb>>Как правильно сделать? Чтобы ничего не прописывать, чтобы clang просто работал. _>Хз. Обычно brew install llvm
Не пользуюсь этим. Мне надо проще, без всяких установок. Распаковали и все. Может какой env ему нужен.
vsb>>>Как правильно сделать? Чтобы ничего не прописывать, чтобы clang просто работал. _>>Хз. Обычно brew install llvm vsb>Не пользуюсь этим. Мне надо проще, без всяких установок. Распаковали и все. Может какой env ему нужен.
Дык этот брю, небось, пути-то прописывает.
А при распаковке пути не прописаны.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Dair, Вы писали:
vsb>>Встроенный не подходит. D>Во что встроенный?
D>В Xcode встроенный не подойдёт?
Да, не подойдёт. Впрочем я решил вопрос радикально — отказался от использования стандартной библиотеки. Хотя ради проформы все равно интересно было бы понять.
Здравствуйте, vsb, Вы писали:
vsb>>>Встроенный не подходит. D>>В Xcode встроенный не подойдёт?
vsb>Да, не подойдёт.
А почему?
vsb> Впрочем я решил вопрос радикально — отказался от использования стандартной библиотеки. Хотя ради проформы все равно интересно было бы понять.
Здравствуйте, Dair, Вы писали:
vsb>>>>Встроенный не подходит. D>>>В Xcode встроенный не подойдёт?
vsb>>Да, не подойдёт.
D>А почему?
Он --target=wasm32 не умеет.
vsb>> Впрочем я решил вопрос радикально — отказался от использования стандартной библиотеки. Хотя ради проформы все равно интересно было бы понять.
D>В самом деле радикально.
Ну с webassembly мне показалось это правильней, кода у меня там немного, а чего там линкер налинкует, непонятно. Пару функций переписать недолго. С emscripten ковырялся, там какая-то жесть генерится.
Здравствуйте, vsb, Вы писали:
wl.>>пути можно не прописывать, напиши какой-нибудь makefile простенький, и в нём уже пути к компиляторам, линкерам, инклюдам и либам vsb>Так и сделал но вопрос же в том, как сделать, чтобы не прописывать в командной строке путь к стандартной библиотеке.
Когда ставишь через brew, он пишет что-то такое:
If you need to have llvm@8 first in your PATH, run:
echo 'export PATH="/usr/local/opt/llvm@8/bin:$PATH"' >> /Users/kingdelee/.bash_profile
For compilers to find llvm@8 you may need to set:
export LDFLAGS="-L/usr/local/opt/llvm@8/lib"
export CPPFLAGS="-I/usr/local/opt/llvm@8/include"