无法将格鲁与Cmake联系起来

Not able to link Glew with Cmake

本文关键字:Cmake 联系 起来      更新时间:2023-10-16

我正在使用OS X上的VScode使用C ++进入OpenGL。我已经安装了 glfw 并用啤酒发光。我已经成功地用 cmake 构建了 glfw 库,我可以打开一个窗口,但是当我尝试构建 glew 时,它总是给我一个错误。

这是我的CMakeList.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)

在 CMakeList 中.txt为我的主.cpp设置了我的目标需要#include "GL/glew.h"我添加了以下行:

target_link_libraries(${MAIN} GLEW::GLEW)

${MAIN} 是我为主要目标名称设置的变量。