Есть учебник — http://llvm.org/docs/GettingStartedVS.html Пример сделан на чистом C. Я могу скомпилировать и связать его. Без проблем, правда. Но мне нужен C ++, а не чистый C. И тут начинаются трудности.
Для clang ++ я использую строку как
"C:\..> clang++ -c hello.cpp -emit-llvm -o hello.bc"
затем:
"C:\..> llc -filetype=obj hello.bc"
а также
"C:\..> link hello.obj -defaultlib:libcmt -out:hello.exe"
там я получаю 14 ошибок LNK2001: unresolved external symbol
Итак, мне нужно несколько советов. Что я делаю не так?
//-----------------
hello.cpp:
#include < iostream >
int main()
{
std::cout << "TEST\n" << std::endl;
return 0;
}
//-----------------
ОС: Windows7.
UPD: Главный вопрос: как из .bc достать .exe? (LLVM, Windows7)
Вы можете использовать мой НКУ а также лязг пакеты:
Загрузите и распакуйте их в тот же каталог. Clang будет использовать libstdc ++ GCC 4.6.3 и CRT MinGW-w64. Назовите это так, как если бы вы gcc.
Clang / LLVM в настоящее время не может работать с библиотекой MSVC C ++ из-за проблем с ABI. Libstdc ++ в GCC работает довольно хорошо, хотя в некоторых местах есть дыры (например, std::to_string
, <regex>
, а также <thread>
).
Поддержка Windows у Clang в порядке, но далеко не полная. Вы не можете, например, dllexport целые классы C ++, к сожалению. И генерация кода Win64 также недостаточно хороша для установки работающего C ++ (даже в сочетании с GCC, как для 32-битных).
Других решений пока нет …