iphone - c/objective-c问题

标签 iphone c compilation

我打算在我的 objective-c 类中的 .c 文件中使用 c 函数。 我已经导入了 c 文件的 header 。但我仍然遇到问题,我的程序无法编译。

undefined symbol :

“gluUnProject(float, float, float, float const*, float const*, int const*, float*, float*, float*)”,引用自: -[GLView checkCollission:object:] in GLView.o ld:未找到符号 collect2: ld 返回 1 个退出状态

知道如何解决这个问题吗? 任何帮助当然不胜感激。 古泰巴

最佳答案

此错误是由链接器而不是编译器发出的。这通常是由于代码被编译为 C 并从 C++ 或其他方式包含。

您通常可以通过在头文件中添加以下内容来确保头文件中的函数定义强制任何 C++ 编译器使用 C 语法来解决此问题:

#ifdef __cplusplus
extern "C" {
#endif

... definitions goes here ...

#ifdef __cplusplus
}
#endif

此方法还确保 .c 文件本身将函数定义视为 C,而不是意外地编译为 C++。

如果你不想改变头部,你可以用同样的方式封装#include语句。然而,这不能确保正确编译 .c 文件本身。

编辑: 只是想一想:我假设您实际上正在编译 .c 文件?

关于iphone - c/objective-c问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3207141/

相关文章:

c - 在看门狗定时器存在的情况下编程

c - 使用在 main1() 中生成的值并在 main2() 中使用它们

c - GCC 相关搜索目录

c++ - 为什么这个C++模板代码无法编译?

iphone - iPhone中UITableViewCell绘制正方形的代码该写在哪里

iphone - 如何截取 3D 转换图像的屏幕截图(或图像合并)?

c - 为什么我可以在一个方法中传递一个指针和 "free"里面的内存?

iphone - 无效的 UserLocation iPhone MapKit

iphone - 如何在 UISplitViewController iPad 之前添加登录 View

swift - 如何让 swift 在合理的时间内编译出基础数学