运行make后,在更新macOS和xcode后查找openGL框架时出现'no rule to make target'错误



我在短暂休假后又回到了一个学校项目。但是,我不能再构建它了。为我们提供了以下CMAKE文件:

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()

运行cmake并尝试使用make编译该项目后,我会收到以下错误:

***没有规则来制作目标>'/applications/xcode.app/coptents/developer/platforms/macosx.platform/deve> loper/sdks/macosx10.12.sdk/system/library/library/frameworks/opengl。框架',>" astro.app/contents/macos/astro"所需的。停止。

我认为我在脱离项目的休息期间更新了操作系统和Xcode,这引起了问题。我对Cmake或Makefiles的了解不多,但是我认为OpenGl的道路陷入困境。通过我的文件系统戳戳我找到了路径

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk

我已经能够在这些目录中找到OpenGL框架,但是没有MACOSX10.12.SDK目录。

我在这里和这里找到了以下类似问题。但是,我没有使用QT,当我运行xcode-select -p时,它会打印正确的路径/Applications/Xcode.app/Contents/Developer

有什么想法如何解决此问题?

我从源代码安装应用程序时收到的错误完全相同。我通过复制" macosx10.13.sdk"解决了这个问题。

中的目录
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

并将其重命名为" macosx10.12.sdk"。

我不是MacOSX或CMAKE的专家,因此我的答案可能不是最好的解决方案,甚至可能引起问题,但它确实为我解决了这个问题。如果有人知道正确的方法,我想知道。

这是我尝试的:

开始时,cmake找不到&quot" cmake_osx_sysroot"配置后。

  1. 我首先将CMAKE设置更改为

    cmake_osx_deployment_target:string = 10.12cmake_osx_sysroot:string = macOSX10.13

但这不起作用。同样的错误。

  1. 然后,我将Mac更新为MacOSX 10.13高塞拉。这次Cmake可以正确设置

    cmake_osx_sysroot:path =/applications/xcode.app/contents/developers/platforms/macosx.platform/developer/sdks/macosx10.13.sdk

但仍会产生相同的错误。因此,我相信问题来自应用程序源代码。

  1. 我搜索了如何安装macOSX10.12.SDK并找到此帖子:SDK。最简单的方法可能是从Timemachine找到旧的SDK。但是我只是买了我的Mac,它没有旧版本SDK。因此,我只是简单地复制并重命名SDK尝试,并且可以使用它。我认为将真正的MacOSX10.12.SDK的SYM链接放在文件夹中将是解决此问题的最佳解决方案。

相关内容

最新更新