3

有一个教程 - 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

所以,我需要一些提示。我做错了什么?

//-----------------

你好.cpp:

#include < iostream >

int main()

{

    std::cout << "TEST\n" << std::endl;

    return 0;

}

//-----------------

操作系统:Windows7。

UPD:主要问题:如何从 .bc 获取 .exe?(LLVM,Windows7)

4

1 回答 1

2

你可以使用我的GCCClang包:

下载并将它们解压缩到同一目录。Clang 将使用 GCC 4.6.3 的 libstdc++ 和 MinGW-w64 的 CRT。像 gcc 一样调用它。

由于 ABI 问题,Clang/LLVM 目前无法与 MSVC 的 C++ 库一起使用。GCC 的 libstdc++ 运行良好,尽管它在令人惊讶的地方(如std::to_string<regex><thread>)有漏洞。

Clang 的 Windows 支持还可以,但远未完成。不幸的是,您不能例如 dllexport 整个 C++ 类。而且 Win64 代码生成也不足以安装有效的 C++(即使与 GCC 结合使用,例如 32 位)。

于 2012-09-28T17:25:51.693 回答