2016-04-22 17 views
2

Mein cpp CodeLLD undefined symbol: mainCRTStartup

int main(int argc, char** argv){ 

} 

Ich verwende den folgenden Befehl, es zu kompilieren und verknüpfen:

// I want to read the result ir 
clang -S -emit-llvm main.cpp 

// I want to compile directly from ir 
llc -filetype=obj main.ll 
lld -flavor link main.obj // <root>: undefined symbol: mainCRTStartup Link failed 

Habe ich etwas verpasst?

Antwort

0

mainCRTStartup ist eine Funktion von der CRT definiert (das Klappern wird wahrscheinlich implizit in dem ersten Schritt verwendet wird, und erzeugt eine Datei mit IR mainCRTStartup als Einstiegspunkt)

Versuchen -nostdlib in dem ersten Schritt clang Passieren

Dies bedeutet, dass Sie nicht in der Lage sein zu verwenden Standard-Library-Funktionen, obwohl

Wenn Sie CRT-Funktionen verwenden möchten, aber Link mit LLD Sie in den nativen Bibliotheken verknüpfen müssen

Verwandte Themen