Cocos2d-x 4.0 应用程序构建在升级到 macOS Big Sur 11.01 后不再有效(错误:没有这样的文件或目录:'/usr/lib/libz.dylib')

Pet*_*ela 5 c++ macos cmake cocos2d-x

升级到 macOS Big Sur 11.01 后,出现以下错误:

clang:错误:没有这样的文件或目录:'/usr/lib/libz.dylib' clang:错误:没有这样的文件或目录:'/usr/lib/libiconv.dylib' 命令 Ld 失败,退出代码非零

如何重现:使用以下方法制作新的 cocos2d-x 项目:

  • cocos -n -d 目录名 -l cpp
  • cd 目录名/MyCppGame
  • mkdir build-iphone
  • cd build-iphone
  • cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos

打开生成的 xcode 项目(更改包标识符)并构建

版本:

  • macOS Big sur 11.01
  • CMake 3.18 或 CMake 3.19.0-rc3
  • cocos2d-x v4.0
  • Xcode 12.2

Pet*_*ela 6

我更改了 cocos2d-x v4.0 库的 cmake/modules/ 中的文件:“CocosConfigDepend.cmake”。

    elseif(IOS)
        # Locate system libraries on iOS
        find_library(UIKIT_LIBRARY UIKit)
        find_library(OPENGLES_LIBRARY OpenGLES)
        find_library(CORE_MOTION_LIBRARY CoreMotion)
        find_library(AVKIT_LIBRARY AVKit)
        find_library(CORE_MEDIA_LIBRARY CoreMedia)
        find_library(CORE_TEXT_LIBRARY CoreText)
        find_library(SECURITY_LIBRARY Security)
        find_library(CORE_GRAPHICS_LIBRARY CoreGraphics)
        find_library(AV_FOUNDATION_LIBRARY AVFoundation)
        find_library(WEBKIT_LIBRARY WebKit)
   
        find_library(ZLIB z)
        find_library(ICONVLIB iconv)

        list(APPEND PLATFORM_SPECIFIC_LIBS
             ${UIKIT_LIBRARY}
             ${OPENGLES_LIBRARY}
             ${CORE_MOTION_LIBRARY}
             ${AVKIT_LIBRARY}
             ${CORE_MEDIA_LIBRARY}
             ${CORE_TEXT_LIBRARY}
             ${SECURITY_LIBRARY}
             ${CORE_GRAPHICS_LIBRARY}
             ${AV_FOUNDATION_LIBRARY}
             ${WEBKIT_LIBRARY}
             ${COCOS_APPLE_LIBS}
             ${ZLIB}
             ${ICONVLIB}
             #"/usr/lib/libz.dylib"
             #"/usr/lib/libiconv.dylib"
             )
    endif()
Run Code Online (Sandbox Code Playgroud)

添加了 ZLIB 和 ICONVLIB,并删除了完整路径行。


小智 5

你可以像这样解决这个问题。

其他链接器标志

libz.dylib => -lz
libiconv.dylib => -liconv

祝你好运。


小智 3

我已签入文件夹 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib

文件 libz.dylib 和 libiconv.dylib 不存在。我认为你应该使用文件 libz.tbd 和 libiconv.tbd

项目/构建设置/其他链接器标志

  • 我从构建设置(其他链接标志)中删除了它们,并将它们添加到构建阶段。这个手动解决方案有效,谢谢。但我怎样才能用 cmake 做到这一点呢? (2认同)