【发布时间】:2022-12-12 02:01:57
【问题描述】:
我使用 Clang 编译,需要将不同的 .obj 文件捆绑到一个 .lib 中。这个 .lib 然后被编译成可执行文件。问题是,尽管它适用于 Unix(ld.lld -r 文件...-o file.lib),但我不能将 -r 用于 lld-link,并且使用 /lib 选项会导致错误:
lld-link: error: <root>: undefined symbol: mainCRTStartup
我尝试了相同的过程,但使用的是 unix。在这里,我们有 ELF 对象文件,可以执行 -relocatable(-r) 将 ELF 对象合并为一个。在 Windows 上,COFF 没有 -relocatable 选项,afaik。而 /LIB 实际上产生了一个包,而不是一个 COFF 对象。如果我不使用 /LIB 作为包含 main 的 COFF 文件,则可执行文件会编译。
【问题讨论】:
标签: windows compilation linker clang