簡體   English   中英

如何使用clang ++在LLVM中編譯C ++程序?

[英]How to compile a C++ program in LLVM using 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)

您可以使用我的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位)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM