我的 cpp 代码:
int main(int argc, char** argv) {}
Run Code Online (Sandbox Code Playgroud)
我使用以下命令来编译和链接它:
// 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
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
小智 2
mainCRTStartup 是 CRT 定义的函数(clang 可能在第一步中隐式使用它,并生成一个以 mainCRTStartup 作为入口点的 IR 文件)
尝试在第一步中将 -nostdlib 传递给 clang
但这意味着您将无法使用标准库函数
如果您想使用 CRT 函数但与 lld 链接,则需要链接到本机库
| 归档时间: |
|
| 查看次数: |
4420 次 |
| 最近记录: |