我正在使用使用Clang构建的目标文件。但无论我传递给ld.exe
的库参数如何,它似乎总是吐出未解析的引用,如memcpy
,标准库,东西和_cxa_atexit等实现内容。
我需要将哪些库(以及以什么顺序?)传递给MinGW链接器以使其将我的目标文件链接到可执行文件中?
编辑:
我改变了#3; i686-pc-mingw"到" i686-pc-mingw32"并且它解决了大多数问题--Clang做了旧的D3D9技巧"当输入明显错误并且输出无法正确时,默默地失败"。但是,我只留下了两个未解决的外部因素 - std::_Hash_impl
和float
只有double
,但没有任何变化。该计划只是" Hello,World!"。奇怪的是,clang ++。exe和g ++。exe都没有编译源代码的问题,但如果我使用Clang C ++ API将其编译为.o,然后将其传递给MinGW,我会得到未解析的外部。
答案 0 :(得分:2)
通常,在构建二进制文件时使用不同的工具链并不是一个好主意。完全有可能的是,不同工具的符号名称的想法是不匹配的。
尽管如此,试着回答你的实际问题:
-lstdc
是最低要求,-lstdc++
如果是C ++代码。不知道你的代码做了什么,就不可能说你是否需要更多代码。