Clang,Microsoft链接器和标准库
发布时间:2020-12-14 05:54:46 所属栏目:Windows 来源:网络整理
导读:我已经成功地使用Microsoft C构建了Clang,并且我正在尝试编译一个hello world测试用例;它生成一个目标文件,与作为剩余绊脚石的标准库链接: hello-202520.o : error LNK2019: unresolved external symbol _printf referenced in function _mainLINK : error
我已经成功地使用Microsoft C构建了Clang,并且我正在尝试编译一个hello world测试用例;它生成一个目标文件,与作为剩余绊脚石的标准库链接:
hello-202520.o : error LNK2019: unresolved external symbol _printf referenced in function _main LINK : error LNK2001: unresolved external symbol _mainCRTStartup 前几年有评论说Clang还没有进行Windows链接,但我觉得那些已经过时了,现在它确实能够生成Windows格式的目标文件: clang -c hello.c ren hello.o hello.obj link hello.obj …没有barf,所以文件格式似乎是正确的,但仍然得到未解决的外部符号错误.可能的猜测是Microsoft编译器标记其输出目标文件,并指示他们需要链接的标准库,而Clang没有,并且眼睛看到相应目标文件的十六进制转储似乎证实了这一点并给出了一个暗示链接器命令行使用: link /defaultlib:libcmt /defaultlib:oldnames hello.obj 我对这个阶段寄予厚望,但是它仍然给出了同样未解决的外部符号错误. 我还缺少什么? 解决方法
事实证明Clang默认生成32位代码,但我使用的是64位MSC,并且随着移动到x64,C符号上的前导_已被删除,因此在clang命令行上指定-m64可以完成这项工作.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – 什么PID在端口25上进行出站连接?
- windows – 诊断2008R1SP2上poolmon.exe中的“文件”标记内
- Operator =不是DLL中导出的C __interface的成员
- windows – 确定重启
- .net – WAS托管与Windows服务托管
- windows – 主文件表清理工具?
- dll – 配置脚本不启用make来生成共享库
- 为什么在Windows中命名文件’con.txt’会使Python写入控制台
- windows-7 – 如何用脚本更改Win7主卷?
- msbuild – TeamCity – Microsoft.Bcl.Build依赖项
推荐文章
站长推荐
- windows-server-2008 – 将Windows 2003文件服务
- windows-server-2003 – 如何在Server 2003上无限
- win10怎么修改DNS
- windows-server-2008 – Windows 7 x64 Ultimate
- directx – 如何在桌面应用程序中调出Windows 8屏
- winapi – 防止Windows的打开文件对话框检查读取
- windows – 为什么Perl会抱怨“包含换行符的文件
- windows – golang:使用struct参数调用winapi
- windows – 测试自动化:如何模拟电源故障/机器崩
- Windows Socket 最大连接数
热点阅读