C++ 带有glew错误的Xcode链接
我正在尝试使用OpenGL4.1编写一个项目。我通常在Windows和OS X之间切换。在Windows上,我使用Visual Studio 2013使用cmake制作项目。这个很好用。在OSX上,当我将cmake与-G“Unix Makefiles”一起使用时,我可以很好地编译和运行。但是,如果生成一个Xcode项目,Xcode生成失败,错误如下:C++ 带有glew错误的Xcode链接,c++,xcode,opengl,cmake,glew,C++,Xcode,Opengl,Cmake,Glew,我正在尝试使用OpenGL4.1编写一个项目。我通常在Windows和OS X之间切换。在Windows上,我使用Visual Studio 2013使用cmake制作项目。这个很好用。在OSX上,当我将cmake与-G“Unix Makefiles”一起使用时,我可以很好地编译和运行。但是,如果生成一个Xcode项目,Xcode生成失败,错误如下: ld: library not found for -lglew clang: error: linker command failed with
ld: library not found for -lglew
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我正在使用这个CMakeLists.txt
cmake_minimum_required(VERSION 2.8.9)
project(Framework)
set(SRC_FILES src/shader.cpp
src/framework.cpp
src/fileio.cpp
src/scene.cpp
src/renderable.cpp
src/camera.cpp
src/mesh.cpp
src/material.cpp
src/light.cpp
src/triangle.cpp
src/cube.cpp
src/basicshader.cpp
src/frameworkmodel.cpp
src/texture.cpp
)
set(HEADER_FILES include/shader.h
include/framework.h
include/fileio.h
include/scene.h
include/renderable.h
include/camera.h
include/mesh.h
include/material.h
include/light.h
include/triangle.h
include/cube.h
include/basicshader.h
include/frameworkmodel.h
include/texture.h
)
if (WIN32)
list(APPEND SRC_FILES src/GLee.cpp src/glew.cpp)
list(APPEND HEADER_FILES include/GLee.h include/glew.h)
endif()
if (APPLE)
SET(GCC_COVERAGE_LINK_FLAGS "-framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo -lglew")
endif()
set(GLFW_PATH glfw-3.1)
set(SOIL_PATH SOIL)
add_subdirectory(${GLFW_PATH})
include_directories(${GLFW_PATH}/include)
include_directories(${SOIL_PATH})
file(GLOB SOIL_SRC
"${SOIL_PATH}/*.h"
"${SOIL_PATH}/*.c"
)
include_directories(./include)
add_library(soil ${SOIL_SRC})
add_library(framework ${SRC_FILES} ${HEADER_FILES})
target_link_libraries(framework soil)
add_executable(test01 tests/test01.cpp)
target_link_libraries(test01 framework)
target_link_libraries(test01 glfw ${GLFW_LIBRARIES})
target_link_libraries(test01 glfw ${OPENGL_glu_LIBRARY} ${GLFW_LIBRARIES})
target_link_libraries(test01 glfw ${GCC_COVERAGE_LINK_FLAGS})
这有什么明显的问题吗
解决方案
我找到了我的glew安装的.dylib位置,并将其添加到xcode搜索路径中,其工作原理与它应该的一样。在windows上,您可以从库中添加glew.h和glew.cpp,对吗?所以它直接编译到你的程序中。但是我不明白为什么UNIX makefiles会工作。我添加了用于windows编译的glew文件,因为它似乎比安装它更容易。在OSX上我安装了glew,所以makefile与安装的glew链接,不知怎么的,Xcode似乎没有。我猜make也使用了/usr/lib等目录,但Xcode不会自己搜索这些路径?也许您可以尝试添加/usr/lib,或者使用-Ldir,so-L“usr/lib”将它安装到gcc标志的位置。