菜鸟教程小白 发表于 2022-12-13 16:22:15

c++ - 如何在 Objective-C 项目中合并 C++ 代码?


                                            <p><p>我想在 Xcode 项目中使用一些 C++ 代码,但我对这两种语言的理解都不够好,还不知道如何进行。我已经在 Obj-C 工作了一段时间,并且在应用商店有一个应用,但仍在学习......</p>

<p>我要使用的代码有两个同名文件和 <code>.h</code> 和 <code>.c</code> 扩展名。我认为它们对应于 Obj-C 中的 <code>.h</code> 和 <code>.m</code> 文件,但它们缺少 <code>@interface</code> 和 <code>@implementation </code> 我熟悉的结构。还有一个我不知道该怎么处理的 <code>main.c</code> 。看起来它是主程序 - 我应该尝试将其代码提取到我的主 <code>viewController</code> 中吗?</p>

<p>也许是一个好的教程的链接?可能这个问题太模糊了……</p>

<p>仅供引用 - 我要使用的代码用于计算日出和日落时间,位于:<a href="http://www.risacher.org/sunwait/" rel="noreferrer noopener nofollow">http://www.risacher.org/sunwait/</a> </p>

<p>谢谢!</p>

<p>编辑:</p>

<p>感谢您的建议 - 在我得到这个之前,我可能需要做更多的学习。但我取得了一些进展......</p>

<p>在 <code>main.c</code> 中(有一个名为那个的文件似乎很奇怪......)有一个这样的函数(?):</p>

<pre><code>int mainFunction(int argc, char *argv[])
{
// a bunch of function-y stuff
}
</code></pre>

<p>它被称为 <code>main</code> 但我将其更改为 <code>mainFunction</code> 以消除错误。现在它编译了,我可以调用它,但是编译器会警告我:<code>warning:implicit declaration of function 'mainFunction'</code>,它在我调用它后崩溃。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><blockquote>
<p>Now it compiles and I can call it but the compiler warns me thus: warning: implicit declaration of function &#39;mainFunction&#39; and it crashes after I call it.</p>
</blockquote>

<p>这是因为,在您使用此函数的地方,您没有前向声明或包含该函数的声明。在您的 Objective-C 代码中,您应该添加以下代码:</p>

<pre><code>int mainFunction(int argc, char *argv[]);
</code></pre>

<p>另请注意,“.c”文件扩展名是 C 代码,而不是 C++。由于 Objective-C 是 C 的超集,您可以轻松地将扩展名更改为“.m”,但您仍然会遇到相同的错误,因为您需要此前向声明。我强烈建议您在进入 Objective-C 世界之前先熟悉 C 和 C++ 代码。如果您不想学习 C++,那么至少,您应该在学习 Objective-C 之前加强您的 C 知识,因为 C 基础知识适用。</p></p>
                                   
                                                <p style="font-size: 20px;">关于c&#43;&#43; - 如何在 Objective-C 项目中合并 C&#43;&#43; 代码?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/4320940/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/4320940/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: c&#43;&#43; - 如何在 Objective-C 项目中合并 C&#43;&#43; 代码?