Я использую Mac OS X 10.9.5, полностью обновленный с XCode версии 6.0.1. Я также установил утилиты командной строки, которые необходимо установить после установки XCode. Я использую GLFW и GLEW в своих библиотеках openGL. GLEW был установлен вручную, когда GLFW был установлен с Macports.Скомпилировать программу OpenGL в Mac Terminal
Я хочу сделать кодирование без XCode, поскольку я делаю это в Windows (с MingW) и Linux. У меня есть googled, как скомпилировать программу, а также искать в stackoverflow.
Так, в настоящее время команда компиляции выглядит следующим образом (Это C++ программе)
g++ -framework Cocoa -framework OpenGL -framework CoreFoundation -framework CoreVideo -framework IOKit -L/usr/lib -L/usr/local/lib -I/usr/include/GLFW -I/usr/local/include/GL main.cpp -o main
Я продолжаю получать следующее сообщение об ошибке:
Undefined symbols for architecture x86_64:
"_glfwCreateWindow", referenced from:
_main in main-ba7a57.o
"_glfwInit", referenced from:
_main in main-ba7a57.o
"_glfwMakeContextCurrent", referenced from:
_main in main-ba7a57.o
"_glfwTerminate", referenced from:
_main in main-ba7a57.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Программа является:
#define GLEW_STATIC
#include <glew.h>
#include <glfw3.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
GLFWwindow* window;
if(!glfwInit()) exit(EXIT_FAILURE);
window = glfwCreateWindow(1024, 768, "glfw", NULL, NULL);
if(!window) {
glfwTerminate();
exit(EXIT_FAILURE);
}
glfwMakeContextCurrent(window);
const GLubyte* version = glGetString(GL_VERSION);
cout << "OpenGL version: " << version << endl;
glfwTerminate();
return 0;
}
Вы не связываетесь с glfw libs, есть только новые каталоги ссылок, но нет libs. –
Возможный дубликат [Что такое неопределенная ссылка/неразрешенная ошибка внешнего символа и как ее исправить?] (Http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external- symbol-error-and-how-do-i-fix) –
В GLFW libs сообщается с помощью -L/usr/local/lib. Все libs указываются -L. – rathorsunpreet