Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带有glew错误的Xcode链接_C++_Xcode_Opengl_Cmake_Glew - Fatal编程技术网

C++ 带有glew错误的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

我正在尝试使用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 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标志的位置。