c++ - 由于 C++ 中的解构函数,xcode 中出现未精炼的符号错误
问题描述
我正在尝试在 xCode 上用 C++ 制作解构函数,但我得到一个错误,如下所示:Undefined symbol: Shader::Shader()
我认为这是因为它没有识别我的解构函数~Shader()
。
完整的错误信息是:
Undefined symbols for architecture x86_64:
"Shader::Shader()", referenced from:
init() in example.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我看过一些关于解构器的视频,但它们似乎都没有使用 xcode 或有这个问题。所以我不确定如何摆脱这个错误。
这是使用的代码:
着色器.h
class Shader {
public:
Shader(void);
~Shader();
}
着色器.cpp
Shader::Shader(void)
{
m_name = "";
m_vertexShader = 0;
m_fragmentShader = 0;
m_programObject = 0;
}
Shader::~Shader()
{
glUseProgram(0);
glDeleteShader(m_vertexShader);
glDeleteShader(m_fragmentShader);
glDeleteProgram(m_programObject);
}
example.cpp 中的 init() 函数:
void init()
{
glClearColor(0.0,0.0,0.0,0.0);
myShader = new Shader;
if(!myShader->load("Basic", "glslfiles/basic.vert", "glslfiles/basic.frag")) {
cout << "failed to load shader" << endl;
}
createGeometry();
}
解决方案
推荐阅读
- c# - 无法保存附件。操作失败。在服务器中找不到对象错误
- c# - 如何在实体框架中使用 c# 将任何类型的文本文件转换为 asp.net web api 中的 PDF 文件?
- visual-studio-code - 从滚动中停止 vscode 预览
- php - 如何使用 Gravity Forms 中的 GFAPI 类?
- rotation - 缩放时太容易旋转地图
- swift - swift中的WebView内容大小问题
- python - 如何使用 zip 文件中的 kaggle 数据集?
- php - 突然间,我开始在我的 SugarCRM 实例上收到此错误。“出现错误”以下是第一个错误之前的页面呈现。
- parse-platform - 条件对象 ACL
- c# - 从数据表传递到控制器时,参数字符串为空