【发布时间】:2012-10-10 22:49:37
【问题描述】:
我有一个带有 C 类型方法的 Objective C 类。我必须用我的代码链接一个 C++ 库和一个 C 库。如果我从任何 Objective C 函数调用库,我会得到链接器错误,它找不到符号。
参考using c++ static library in objective c
但我需要以某种方式调用该 C 函数。有没有其他选择?如果只有 C 库,我可以从目标 C 方法进行库调用,但 C++ 库不允许我这样做。我不知道为什么。
【问题讨论】:
-
那么您尝试调用 C 或 C++ 的函数是什么?
-
从另一个问题来看,您正在寻求从Objective C程序调用C++函数的导出
extern "C"接口。这会给系统带来麻烦。 -
@JonathanLeffler 为什么会这样?如果一个函数被声明为
extern "C",那么就不会出现名称修改问题......而且由于Objective-C是C的严格超集,从Objective-C调用C函数应该不是问题...... -
我正在尝试调用 c++ 库中的一个函数,而该函数又在内部尝试调用 C 库中的另一个函数。为了调用 c++ 库的函数,我必须在 Objective-C 的 C 风格函数中编写所有此类函数调用。我尝试在 c++ 方法(在头文件中)的声明之前使用 extern "C",编译器显示错误。
标签: c++ objective-c c static-libraries