>

OpenGL을 배우려고합니다. Clion을 IDE로 사용하고 있는데, CMakeLists.txt 파일을 사용하여 프로젝트를 구성/컴파일합니다.

컴파일러가 glClear 를 찾을 수 없습니다  어떤 이유로 든 :

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 그러나 glClear(GL_COLOR_BUFFER_BIT) 를 호출하면 코드가 작동하지 않습니다. . 왜 그런지 잘 모르겠습니다. 누군가 나를 올바른 방향으로 안내 할 수 있다면 좋을 것입니다.

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;
}

  • 이전 php - 쿼리 결과를 유지하면서 쿼리에서 MAX ()를 검색하는 방법은 무엇입니까?
  • 다음 Angular 7에서 부트 스트랩 모달을 수정하는 방법은 무엇입니까?