在今天之前,我一直认为在连接阶段把对象和库传给g ++的顺序是不重要的。 然后,今天,我试图从c ++代码链接到c代码。 我将所有的C头文件封装在一个extern“C”块中,但是链接器仍然有困难find我知道在C对象存档中的符号。 困惑,我创build了一个相对简单的例子来隔离链接错误,但令我惊讶的是,更简单的例子没有任何问题。 经过一些试验和错误之后,我发现通过模拟简单例子中使用的链接模式,我可以得到主代码链接OK。 该模式是目标代码第一,对象档案第二例如: g++ -o serverCpp serverCpp.o algoC.o libcrypto.a 任何人都可以阐明为什么这可能是这样的? 链接普通的c ++代码时,我从来没有见过这个问题。