在库中包括带有外部C链接的函数
|
我在C ++代码中包含了一些带有外部C链接的C函数。例如。
// File Y.cpp:
extern C {
void fnA(void) { }
void fnB(void* a, void* b) { }
}
class test {
....
};
// end of file
文件Y在模块Mod下。在为模块Mod构建库libMod-O.a时,除非包含其他文件(Mod.cpp)中的Y.h并使用类测试,否则我看不到extern块下的函数。因此,除非我在Mod.cpp中创建测试类的对象,否则即使在libMod-O.a的构建过程中通过Y.cpp编译,也不会在libMod-O.a中看到外部函数(fnA,fnB)。这样做的结果是,当另一个模块使用fnA,fnB时发生链接器错误。
我看不到外部函数fnA和fnB之间的连接以及Mod.cpp中类测试的用法。这是预期的还是有更好的方法来定义这一点?
没有找到相关结果
已邀请:
2 个回复
盛梯獭八搽
在YourCCode.c中:
确保您的编译器将YourCCode.c编译为C,而不是C ++。 在您的C ++代码中
雄鞋谋塘