【发布时间】:2019-11-26 03:58:56
【问题描述】:
我正在编译一个非常简单的main.c:
int myfunc(int x, int y){
return x + y;
}
int main(){
int res = myfunc(2,2);
return;
}
我正在使用以下选项进行编译:
clang.exe -std=c11 -g -c .\main.c
我得到我的main.o 作为输出。现在我使用lld-link.exe 使用以下选项进行链接:
lld-link.exe -defaultlib:libcmt -libpath:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64\" .\main.o
我收到以下错误:lld-link: error: no input files
但显然main.o 作为最后一个参数,应该是您放置输入文件的位置。另请记住,我必须链接到 libcmt.lib 才能获得 mainCRTStartup 函数的符号。
【问题讨论】:
-
将
main.o放在选项前面有帮助吗?还是有助于删除 libpath 的最后一个反斜杠?恐怕\"不会被识别为引用参数的结尾。顺便说一句,大多数 Windows 工具确实将正斜杠理解为路径分隔符。