gpt4 book ai didi

c++ - cpp 中声明的全局变量在 objective c 中使用

转载 作者:行者123 更新时间:2023-11-28 03:21:35 25 4
gpt4 key购买 nike

我在 xcode 项目中使用了一个 cpp 文件。在 cpp 文件中,我执行以下操作

ReadYML.h

typedef struct {
float Position[3];
float Color[4];
float TexCoord[2];
} Vertex_OR;

extern Vertex_OR Vertices_OR [100];

extern GLubyte Indices_OR [30];

in ReadYML.cpp

I assigned values for this.

In view.m

I declared "sample.h"

并尝试访问 Vertices_OR 和 Indices_OR 但出现以下错误?

Undefined symbols for architecture i386:
"_Indices_OR", referenced from:
loadyml() in ReadYMLfile.o
"_Vertices_OR", referenced from:
loadyml() in ReadYMLfile.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这里有什么问题?我需要使用“Sample.h”中声明的全局变量来访问view.m?可能吗?

最佳答案

extern Vertex_OR Vertices_OR [100];

extern GLubyte Indices_OR [30];

extern 的意思是“嘿,编译器,这个符号存在于某处”。如果你在某处的某个编译单元中没有像下面这样的相应声明,你将得到该链接错误(即将其放在相应的 .m 文件中的某处):

Vertex_OR Vertices_OR [100];

GLubyte Indices_OR [30];

关于c++ - cpp 中声明的全局变量在 objective c 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15276261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com