Click here to Skip to main content
15,891,529 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
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:
C++
#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:
C++
#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:
C++
#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;
}
Posted
Comments
Richard MacCutchan 19-Sep-15 4:11am    
It means you are trying to build the program to run on x86 64bit architecture, i.e. PC based systems. You need to find the setting for the destination type and reset it to MAC.

1 solution

You must include the binaries as input for the linker.

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

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900