我想在 Xcode 项目中使用一些 C++ 代码,但我对这两种语言都不太了解,还不知道如何继续。我已经使用 Obj-C 一段时间了,并且在应用程序商店上有一个应用程序,但仍在学习......
我要使用的代码有两个同名的文件,扩展名为 .h
和 .c
。我认为它们对应于 Obj-C 中的 .h
和 .m
文件,但它们缺少 @interface
和 @implementation
结构我很熟悉。还有一个 main.c
我不知道该怎么办。它看起来像是主程序 - 我应该尝试将其代码提取到我的主 viewController
中吗?
也许有一个很好的教程的链接?也许这个问题太模糊了......
仅供引用 - 我想要使用的代码用于计算日出和日落时间,位于:http://www.risacher.org/sunwait/
谢谢!
编辑:
感谢您的建议 - 在得到这个之前我可能需要做更多的学习。但我取得了一些进展...
在main.c
中(有一个名为那个的文件似乎很奇怪......)有一个像这样的函数(?):
int mainFunction(int argc, char *argv[])
{
// a bunch of function-y stuff
}
它被称为main
,但我将其更改为mainFunction
以消除错误。现在它编译了,我可以调用它,但编译器会警告我:警告:函数“mainFunction”的隐式声明
并且在我调用它后它崩溃了。
最佳答案
Now it compiles and I can call it but the compiler warns me thus: warning: implicit declaration of function 'mainFunction' and it crashes after I call it.
这是因为,在使用此函数的地方,您没有前向声明或包含该函数的声明。在您的 Objective-C 代码中,您应该添加以下代码:
int mainFunction(int argc, char *argv[]);
另请注意,“.c”文件扩展名是 C 代码,而不是 C++。由于 Objective-C 是 C 的超集,因此您可以轻松地将扩展名更改为“.m”,但您仍然会得到相同的错误,因为您需要此前向声明。我强烈建议您在进入 Objective-C 世界之前先熟悉 C 和 C++ 代码。如果你想放弃学习 C++,那么至少,你应该在学习 Objective-C 之前加强你的 C 知识,因为 C 基础知识是适用的。
关于c++ - 如何将C++代码合并到Objective-C项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320940/