我现在有一个问题,让我感到困惑: 我有一段以C++编写的软件,并且与C中的库链接。通常的在运行时GCC优化结果为“未定义符号”
extern "C" {
#include <libheader.h>
}
一切正常,只要我不使用gcc的优化。一旦我打开-O1(因此是第一个优化级别),在运行期间,我会从该库中获取符号的“未定义符号”错误。但是,这个名字已经通过名称修改,应该被禁用,因为extern "C"
。
调用符号的函数被内联,以防万一。使用的编译器是gcc 4.4.3。
我真的不知道要搜索什么,所以如果你们其中一个可以给我一些这种行为的理由,我会非常感激。
感谢您的支持。
你可以删除内联(即使功能不内联),看看它是否开始工作? – sashoalm 2011-03-30 12:08:50
作为@ satuon的建议的替代方法,是否可以让内联函数调用一个包装C函数的C++函数,并查看它是否能够开始工作? – 2011-03-30 12:11:11
感谢您的回复!我尝试了两个建议,但是,该符号仍未找到。 – Thilo 2011-03-30 13:38:09