我正在OS X上使用VScode进入C ++的OpenGL。我已经安装了glfw并与brew一起使用。我已经成功地使用cmake构建了glfw库,并且可以打开一个窗口,但是当我尝试构建glew时,总是会出现错误。
这是我的CMakeLists.txt
cmake_minimum_required (VERSION 3.5)
project (test)
set(CMAKE_CXX_STANDARD 11)
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_executable(test
src/main.cpp
)
add_subdirectory(glfw)
find_package(GLEW REQUIRED)
find_package(OpenGL REQUIRED)
if (GLEW_FOUND)
include_directories(glew/include)
endif()
if (APPLE)
target_link_libraries(test ${GLEW_LIBRARY})
target_link_libraries(test "-framework GLUT")
target_link_libraries(test "-framework OpenGL")
endif()
target_link_libraries(test glfw ${GLEW_LIBRARIES})
[当我尝试'制造'它时,给我这个错误:
undefined symbols for architecture x86_64:"_glewInit", referenced from: _main in main.cpp.o.
我能够在其中加入GLEW
[brew install glew
(此步骤将构建glew并将其安装在您的系统上,所以您是说这是失败的吗?否则,就不再需要构建glew了。)]
然后在我的顶级CMakeLists.txt中
find_package(GLEW 2.0 REQUIRED)
并且在CMakeLists.txt中为我的main.cpp设置了目标,并需要#include "GL/glew.h"
,我添加了这一行:
target_link_libraries(${MAIN} GLEW::GLEW)
$ {MAIN}是我为主要目标名称设置的变量。]>