我现在有一个相当令我困惑的问题:我有一段用C++编写的软件,它链接到一个用C编写的库。我使用通常的方法包含头文件类:
extern "C" {
#include <libheader.h>
}
只要我不使用gcc的优化,一切都正常。但一旦我开启-O1(即第一个优化级别),在运行时会出现“未定义符号”错误,该符号来自此库。但是,由于
extern "C"
,名称已经进行了名称重整,因此应禁用它。调用相关符号的函数是内联的,如果这很重要。所使用的编译器是gcc 4.4.3。
老实说,我甚至不知道要搜索什么,所以如果你们中的任何人能给我一些原因,我会非常感激。
感谢您的支持。