在更新 macOS 和 Xcode 后,运行 make 后,当寻找 openGL 框架时,出现了 "no rule to make target" 错误。
在更新 macOS 和 Xcode 后,运行 make 后,当寻找 openGL 框架时,出现了 "no rule to make target" 错误。
我在短暂的休息后又开始着手一个学校项目。然而,我无法再次构建它。我们提供了以下的cmake文件:\n
cmake_minimum_required(VERSION 2.8) PROJECT(astro) SET(VTK_DIR /Users/hank/Hartree/VTK/install/lib/cmake/vtk-6.0) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) add_executable(astro MACOSX_BUNDLE astro) SET(CMAKE_CXX_LINK_FLAGS "-framework OpenGL") if(VTK_LIBRARIES) target_link_libraries(astro ${VTK_LIBRARIES}) else() target_link_libraries(astro vtkHybrid) endif()
\n在运行cmake
并尝试用make
编译项目后,我得到了以下错误:\n
\n*** No rule to make target >\'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Deve>loper/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/OpenGL.framework\', >needed by \'astro.app/Contents/MacOS/astro\'. Stop.\n
\n我认为在项目休息期间,我更新了操作系统和Xcode,导致了这个问题。我对cmake或makefile了解不多,但我认为某种方式导致了openGL的路径出现问题。在浏览我的文件系统时,我找到了以下路径\n/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
,\n和\n/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
,\n我在这些目录中找到了openGL的框架,但没有MacOSX10.12.sdk目录。\n我在这里找到了类似的问题here和here。然而,我没有在使用Qt,并且当我运行xcode-select -p
时,它打印出正确的路径/Applications/Xcode.app/Contents/Developer
。\n有什么办法可以解决这个问题吗?
在更新 macOS 和 Xcode 后,在运行 make 命令时,出现了“no rule to make target”错误,该错误是由于找不到 OpenGL 框架引起的。
解决该问题的方法如下:
1. 在路径`/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/`下,复制并重命名名为"MacOSX10.13.sdk"的文件夹为"MacOSX10.12.sdk"。
2. 修改 cmake 设置,将`CMAKE_OSX_DEPLOYMENT_TARGET`的值改为10.12,将`CMAKE_OSX_SYSROOT`的值改为`macosx10.13`。
3. 更新 Mac 系统至 MacOSX 10.13 High Sierra。
4. 在网上搜索如何安装 MacOSX10.12.sdk,找到了一个解决方案:在 TimeMachine 中找到旧版本的 sdk,然后将其复制并重命名。将真正的 MacOSX10.12.sdk 的符号链接放入相应文件夹中可能是解决该问题的最佳方法。
以上是关于在更新 macOS 和 Xcode 后,在寻找 OpenGL 框架时运行 make 命令出现“no rule to make target”错误的原因和解决方法的整理。