HikariObfuscator/Hikari

Undefined symbols ___isOSVersionAtLeast when use #ifdef __IPHONE_11_0

Closed this issue · 10 comments

Mac OS 10.14
Xcode Version 10.1 (10B61)

  1. git clone -b release_70 https://github.com/HikariObfuscator/Hikari.git Hikari && mkdir Build && cd Build && cmake -G "Ninja" -DLLDB_CODESIGN_IDENTITY='' -DCMAKE_BUILD_TYPE=MinSizeRel -DLLVM_APPEND_VC_REV=on -DLLVM_CREATE_XCODE_TOOLCHAIN=on -DCMAKE_INSTALL_PREFIX=~/Library/Developer/ ../Hikari && ninja &&ninja install-xcode-toolchain && git clone https://github.com/HikariObfuscator/Resources.git ~/Hikari && rsync -a --ignore-existing /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ ~/Library/Developer/Toolchains/Hikari.xctoolchain/ && rm ~/Library/Developer/Toolchains/Hikari.xctoolchain/ToolchainInfo.plist
  2. Xcode-->Toolchains-->Hikari
Undefined symbols for architecture arm64:
  "___isOSVersionAtLeast", referenced from:
      -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
ld: symbol(s) not found for architecture arm64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation) 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#ifdef __IPHONE_11_0
     if (@available(iOS 11.0, *)) {
         NSLog(@"打我啊");
     }
#else
#endif
    // Override point for customization after application launch.
    return YES;
}

  1. delete #ifdef __IPHONE_11_0,#else,#endif, that work fine.

You probably need to explicitly link to compiler-rt, available in your LLVM Toolchain directory

👌, 3Q.

Sorry I mean clang-rt, at Hikari.xctoolchain/usr/lib/clang/10.0.0/lib/darwin/libclang_rt.ios.a (or macOS suffix)

Sorry I mean clang-rt, at Hikari.xctoolchain/usr/lib/clang/10.0.0/lib/darwin/libclang_rt.ios.a (or macOS suffix)

hello,I can't understand what do u mean。 Can you explain it in more detail? what it's “clang-rt”?

可以说一下具体解决办法吗,谢谢

@Naville 显示链接clang-rt这个不知道怎么操作,可以具体说一下吗,谢谢

上面写的很清楚连路径都给了

@Naville 我是用Xcode编译的,然后报这个错,知道了路径,但是不知道怎么修改,在哪里修改,对这块不是很熟...

@tuyuwang .a拉进链接的库列表再改下搜索路径?我也不熟Xcode

Sorry I mean clang-rt, at Hikari.xctoolchain/usr/lib/clang/10.0.0/lib/darwin/libclang_rt.ios.a (or macOS suffix)

这个文件放进xcode工程中就行了,thx!