【发布时间】:2011-03-22 18:15:38
【问题描述】:
在今天之前,我一直认为在链接阶段将对象和库传递给 g++ 的顺序并不重要。然后,今天,我尝试从 c++ 代码链接到 c 代码。我将所有 C 标头包装在一个 extern "C" 块中,但链接器仍然难以找到我知道在 C 对象档案中的符号。
困惑,我创建了一个相对简单的示例来隔离链接错误,但令我惊讶的是,更简单的示例链接没有任何问题。
经过一些尝试和错误,我发现通过模拟简单示例中使用的链接模式,我可以得到主代码来链接 OK。该模式首先是对象代码,其次是对象档案,例如:
g++ -o serverCpp serverCpp.o algoC.o libcrypto.a
谁能解释为什么会这样?我在链接普通c++代码时从未见过这个问题。
【问题讨论】: