在更新 macOS 和 Xcode 后,运行 make 后,当寻找 openGL 框架时,出现了 "no rule to make target" 错误。

8 浏览
0 Comments

在更新 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我在这里找到了类似的问题herehere。然而,我没有在使用Qt,并且当我运行xcode-select -p时,它打印出正确的路径/Applications/Xcode.app/Contents/Developer。\n有什么办法可以解决这个问题吗?

0
0 Comments

在更新 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”错误的原因和解决方法的整理。

0