当前位置:  开发笔记 > 编程语言 > 正文

在Xcode中编译C++类:编译期间出错:stl vector

如何解决《在Xcode中编译C++类:编译期间出错:stlvector》经验,为你挑选了2个好方法。

我有一个C++类,可以在linux上使用gcc和visual studio中的寡妇进行编译.

boid.h:

#ifndef BOID_CLASS_HEADER_DEFINES_H
#define BOID_CLASS_HEADER_DEFINES_H
#include "defines.h"

class Boid {

public:
     // Initialize the boid with random position, heading direction and color
     Boid(float SceneRadius,float NormalVel);

     .....
protected:
     ...
};

#endif

并在boid.cpp中:

#include "Boid.h"

// Initialize the boid with random position, heading direction and color
Boid::Boid(float SceneRadius,float NormalVel) 
{
    ....
}

但是,当我在Xcode中编译此代码时,我收到以下错误:

Compiling Boid.h: "error: vector: No such file or directory"

有任何想法吗?我以为你可以使用C/C++代码并在Xcode中编译它而没有问题?

谢谢

编辑:添加了define.h(还将#endif添加到示例中,但是在原始代码中)

编辑2:在评论出几个包括空的时间后,我得到了一个不同的错误:上面的向量错误.

#ifndef BOID_NAV_DEFINES_H
#define BOID_NAV_DEFINES_H
#include 
#include 
#include "Vector3d.h"
#include "Point3d.h"
#include "win_layer.h"
#endif

epatel.. 22

您是否在.m文件中包含C++标头?

.m文件被视为具有Objective-C扩展名的.c文件.

.mm文件被视为具有Objective-C扩展名的.cpp文件,然后它被称为Objective-C++

只需将任何.m文件重命名为.mm,右键单击或按住Ctrl键单击并在Xcode中选择重命名文件.



1> epatel..:

您是否在.m文件中包含C++标头?

.m文件被视为具有Objective-C扩展名的.c文件.

.mm文件被视为具有Objective-C扩展名的.cpp文件,然后它被称为Objective-C++

只需将任何.m文件重命名为.mm,右键单击或按住Ctrl键单击并在Xcode中选择重命名文件.



2> John Riselva..:

如果你点击你的项目,点击你的项目,点击tagets-> build settings一直到"LLVM GCC 4.2 - 语言"(新的xcode说"Apple LLVM编译器4.2")你没有改变任何.m到.mm或类似的东西将看到Compile Sources将值改为Objective-C++ ;


希望我能不止一次地投票!:) 谢谢.
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有