Как скомпилировать программу на C ++ в LLVM, используя clang ++?

Есть учебник — 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)

2

Решение

Вы можете использовать мой НКУ а также лязг пакеты:

Загрузите и распакуйте их в тот же каталог. 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-битных).

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector