经过短暂的中断,我回到了一个学校项目。但是,我无法再进行构建了。我们获得了以下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/Contents/Developer/Platforms/MacOSX.platform/Deve> loper / SDKs / MacOSX10.12.sdk / System / Library /框架/ OpenGL.framework',>需要' 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目录。
我发现了以下类似的问题here和here。但是,我没有使用Qt,当我运行xcode-select -p
时,它会打印正确的路径/Applications/Xcode.app/Contents/Developer
任何想法如何解决这个问题?
答案 0 :(得分:0)
从源代码安装应用程序时收到完全相同的错误。我通过复制
中的“MacOSX10.13.sdk”目录解决了这个问题{{1}}
并将其重命名为“MacOSX10.12.sdk”。
我不是MacOSX或cmake的专家,因此我的答案可能不是最佳解决方案,甚至可能会导致问题,但它确实为我解决了这个问题。如果有人知道正确的方法,我想知道。
以下是我的尝试:
开始时,cmake在配置后找不到“CMAKE_OSX_SYSROOT”。
我首先将cmake设置更改为
CMAKE_OSX_DEPLOYMENT_TARGET:STRING = 10.12 CMAKE_OSX_SYSROOT:STRING = macosx10.13
但这不起作用。同样的错误。
然后我将Mac更新为MacOSX 10.13 High Sierra。这次cmake可以正确设置
CMAKE_OSX_SYSROOT:PATH = /应用/ Xcode.app /内容/开发商/平台/ MacOSX.platform /开发商/软件开发工具包/ MacOSX10.13.sdk
但仍会产生相同的错误。因此,我认为问题来自应用程序源代码。