编译中的C++代码类:编译过程中的错误:STL向量 我有一个C++类,它在GCC上和Linux上的Visual Studio中编译好。p>
B.h:编译中的C++代码类:编译过程中的错误:STL向量 我有一个C++类,它在GCC上和Linux上的Visual Studio中编译好。p>,c++,xcode,porting,C++,Xcode,Porting,B.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);
#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中编译它而不会出现问题
谢谢
EDIT:Added defines.h还向sample添加了endif,但这是在原始代码中
编辑2:我得到了一个不同的错误后,评论出了一对夫妇包括有空:向量错误以上
#ifndef BOID_NAV_DEFINES_H
#define BOID_NAV_DEFINES_H
#include <stdlib.h>
#include <vector>
#include "Vector3d.h"
#include "Point3d.h"
#include "win_layer.h"
#endif
不确定是否忘记粘贴,但您有一个未终止的ifndef 里面是什么 编辑:您似乎已经找到了解决方案。还有一句话:
#include <stdlib.h>
< C++ >请:
#include <cstdlib>
:d
< p>当然,定义中有一些东西。h影响类定义。确保你将它编译成C++。右键单击XCODE中的文件,选择GET信息,并确保文件类型被设置为SoeCeCooDe.CP..cP用于实现文件。是否包含C++文件头在.m文件中? .m文件被视为具有Objective-c扩展名的.c文件
.mm文件被视为扩展名为Objective-C的.cpp文件,然后称为Objective-C++只需将任何.m文件重命名为.mm,单击鼠标右键或ctrl键,然后在Xcode中的文件上选择“重命名”。假设您讨论的是使用gcc进行实际编译的OS X Xcode。因此,除了gcc的不同版本之外,它和Linux之间应该没有什么区别 我首先想到的是,您键入了boid.h作为文件名,但您包含了boid.h。假设这不是一个打字错误,我希望这会在Linux和OS X上都造成麻烦 编辑以回答新问题:嗯。。。vector绝对是我机器上Xcode:/Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.0.0/vector的一部分
进一步思考:如果您将源代码和makefiles从Linux版本移植到Mac,您可能可以像在Linux上一样从命令行编译它。…此问题有两个错误: 我的一个收信人有一个打字错误,导致了一个编译错误 矢量未找到错误已由.m文件修复为.mm
在不将任何.m更改为.mm或类似内容的情况下,如果单击项目,请单击标记->生成设置 一直到LLVM GCC 4.2语言新xcode说Apple LLVM compiler 4.2您将看到编译源代码,将该值更改为Objective-C++ 我希望这会有所帮助。 在将xCode更新到版本10之后,我遇到了一些问题,包括