我有一个使用glew的CMake项目。昨天它没有错误地工作。我没有对cmakelists做任何更改,现在我得到了这个:
[cmake] Imported target "GLEW::GLEW" includes non-existent path"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/OpenGL.framework"
[cmake] in its INTERFACE_INCLUDE_DIRECTORIES.
这是我的cmakelists文件:
include_directories(/opt/homebrew/include)
include_directories(/opt/homebrew/Cellar/glew/2.2.0_1/include)
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} Wno-deprecated")
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR})
link_directories(${GLUT_LIBRARY_DIRS})
add_definitions(${GLUT_DEFINITIONS})
find_package(GLEW 2.0 REQUIRED)
include_directories(${GLEW_INCLUDE_DIR})
link_directories(${GLEW_LIBRARY_DIRS})
add_definitions(${GLEW_DEFINITIONS})
target_link_libraries(${PROJECT_NAME} "-F${CMAKE_OSX_SYSROOT}/System/Library/Frameworks" "-framework GLUT")
target_link_libraries(${PROJECT_NAME} "-F${CMAKE_OSX_SYSROOT}/System/Library/Frameworks" "-framework OpenGL")
target_link_libraries(${PROJECT_NAME} GLEW::GLEW)
我在任何地方都没有发现这个问题。你能给我指出正确的方向吗?
我尝试将MAKE_OSX_SYSROOT设置为我认为唯一可能的路径set(CMAKE_OSX_SYSROOT "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk")
和set(CMAKE_OSX_SYSROOT "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.sdk")
,但总是得到相同的错误。
在/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
中,我有这两个sdk:MacOSX13.3.sdk和MacOSX13.sdk所以它没有找到13.1是有道理的。我不明白它是从哪里得到的13.1。我不知道它是否相关,但我用xcode打开一个文件,我被要求安装,即使它已经安装。
1条答案
按热度按时间31moq8wy1#
您的CMake变量缓存(构建文件夹中的CMakeCache.txt文件)中有一些过时的数据。也许您以前有MacOSX13.1.sdk,并且您最近的操作导致MacOSX1331.sdk更新。您可以删除构建文件夹并重新配置以使用新信息重新填充该高速缓存,或者您可以使用
--fresh
标志运行configure命令。