找不到架构x86_64的符号 [英] symbol(s) not found for architecture x86_64

查看:88
本文介绍了找不到架构x86_64的符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨。

我正在尝试在Mac OS X上编译Eclipse中的C ++项目,并不断收到此错误。我真的不知道这意味着什么,或者如何解决它,我已经查了一下,并没有找到有关如何解决它的有用信息。我几乎肯定我已经尝试使用正确安装的所有库/头文件,因为Eclipse似乎能够在自动完成中使用它们。如果你能告诉我这个错误意味着什么,也许我怎么能解决这个问题真的很有帮助。谢谢



display.h:

Hi.
I'm trying to compile a C++ project in Eclipse on Mac OS X, and keep getting this error. I don't really know what it means, or how to fix it, and I've looked it up and haven't found much useful info on how to solve it. I'm almost positive I have all the libraries/headers that I'm trying to use properly installed as Eclipse seems to be able to use them in auto-complete. If you could please tell me what this error means and maybe how I can fix it that would be really helpful. Thanks

display.h:

#ifndef DISPLAY_H_
#define DISPLAY_H_

#include <SDL2/SDL.h>
#include <string>

class Display {
public:
	Display(int width, int height, const std::string& type);

	void Update();
	bool IsClosed();

	virtual ~Display();
protected:
private:
	void operator=(const Display& display) {}
	Display(const Display& display) {}

	SDL_Window* m_window;
	SDL_GLContext m_glContext;
	bool m_isClosed;
};

#endif /* DISPLAY_H_ */





display.cpp:



display.cpp:

#include "display.h"
#include <GL/glew.h>
#include <iostream>

Display::Display(int width, int height, const std::string& title) {
	SDL_Init(SDL_INIT_EVERYTHING);

	SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
	SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, 32);
	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

	m_window = SDL_CreateWindow(title.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);
	m_glContext = SDL_GL_CreateContext(m_window);

	GLenum status = glewInit();
	if(status != GLEW_OK) {
		std::cerr << "Glew failed to initialize" << std::endl;
	}

	m_isClosed = false;
}

Display::~Display() {
	SDL_GL_DeleteContext(m_glContext);
	SDL_DestroyWindow(m_window);
	SDL_Quit();
}

bool Display::IsClosed() {
	return m_isClosed;
}

void Display::Update() {
	SDL_GL_SwapWindow(m_window);

	SDL_Event e;

	while(SDL_PollEvent(&e)) {
		if(e.type == SDL_QUIT) {
			m_isClosed = true;
		}
	}
}





main.cpp:



main.cpp:

#include <GL/glew.h>
#include "display.h"

int main() {
	Display display(800, 600, "Hello World!");

	while(!display.IsClosed()) {
		glClearColor(0.0f, 0.15f, 0.3f, 1.0f);
		glClear(GL_COLOR_BUFFER_BIT);

		display.Update();
	}

	return 0;
}

推荐答案

您必须包含二进制文件作为链接器的输入。



下次你最好在问题中附上错误信息。
You must include the binaries as input for the linker.

Next time you better attach the error messages in your questions.


这篇关于找不到架构x86_64的符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆