iphone - 如何在iphone项目中添加C++文件

标签 iphone c++ objective-c xcode

我有一个 iPhone 项目,我想在其中使用 C++ 文件。我创建了如下所示的 C++ 文件:

文件->新建文件->C/C++文件->C++文件 并将其命名为 ClassA.cpp

在ClassA.cpp中

#include <iostream>

class ClassA
{
  public:
    int a, b;

    void add();

};

void ClassA::add()
{

//    printf("sdf");
}

在我的 viewController.mm 文件中:

#import "ViewController.h"
#import "ClassA.cpp"
- (void)viewDidLoad
{
    ClassA a;
    a.add();



    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

我读了一些帖子说我要将 .m 重命名为 .mm 所以我将所有 .m 文件重命名为 .mm 并添加了两个链接器标志

-cclib -lstdc++

但它给出了以下错误:

enter image description here

最佳答案

需要将C++部分拆分成一个头文件和一个cpp文件,否则ClassA::add会被定义两次。

A类.h:

#include <iostream>

class ClassA
{
  public:
    int a, b;

    void add();

};

A类.cpp:

#include "ClassA.h"
void ClassA::add()
{

//    printf("sdf");


}

您的 .mm 文件:

#import "ClassA.h"
... the rest of the file ...

关于iphone - 如何在iphone项目中添加C++文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389102/

相关文章:

iphone - 为用户提供激活飞行模式的选项

iphone - 将 nib View 加载到另一个 nib View 中

c++ - 如何创建模板参数为 std::vector 时使用的此方法的模板版本

ios - 如何在 iOS 11 中正确设置 UINavigationBar 高度

ios - 圆形,3 色渐变,动画进度 View

ios - 使用 UIBezierPath 绘制极坐标函数

iphone - 来自 AVCaptureVideoPreviewLayer 的 UIImage

ios - Xamarin.iOS 错误 : The Apple iOS SDK is not installed.(iOS9、XCode 7 测试版)

c++ - 内存分配/释放错误(极小代码)

c++ - 运行时错误 : addition of unsigned offset to 0x603000000040 overflowed to 0x603000000034 (STL_vector. h)