1
OpenGLを学習しようとしています。私はClionをIDEとして使用しています。これはCMakeLists.txtファイルを使用してプロジェクトを整理/コンパイルします。OpenGLを学習中にglClearが見つかりません
コンパイラが何らかの理由でglClear
を見つけることができません:私はglClear(GL_COLOR_BUFFER_BIT)
を呼び出すとき
Undefined symbols for architecture x86_64:
"_glClear", referenced from:
_main in main.cpp.o
"_glClearColor", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [GraphicsPractice] Error 1
make[1]: *** [CMakeFiles/GraphicsPractice.dir/all] Error 2
make: *** [all] Error 2
は、私は正常GLEW
とGLFW
をリンクすることができるよ、しかし、私のコードが壊れます。なぜ私は分からない。誰かが私を正しい方向に向けるのを助けることができたら、それは素晴らしいことでしょう。
CMakeList.txt
cmake_minimum_required(VERSION 3.6)
project(GraphicsPractice)
set(CMAKE_CXX_STANDARD 14)
set(SOURCE_FILES src/main.cpp)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
add_subdirectory(deps/glfw)
find_package(OpenGl REQUIRED)
find_package(GLEW REQUIRED)
include_directories("deps/glfw/include/")
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} glfw glew)
main.cppには
#define GLEW_STATIC
#include <GL/glew.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main() {
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL", 0, nullptr);
glfwMakeContextCurrent(window);
glewExperimental = GL_TRUE;
glewInit();
while (!glfwWindowShouldClose(window)) {
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, GL_TRUE);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
コンパイラエラーではなくリンカエラーです。あなたはOpenGLライブラリとリンクしていません。 – xaxxon
[OSX](http://stackoverflow.com/questions/16731572/opengl-object-not-found-for-architecture-x86-64)を使用していますか? – genpfault
@genpfaultはい私は午前です。 –