小编Nat*_*vod的帖子

使用scala-native构建iOS应用程序

我正在尝试使用scala-native在os x上构建一个iOS应用程序,并在执行sbt构建时遇到许多问题.任何关于做什么的提示都是受欢迎的.

我使用Xcode目录为iOS文件设置build.sbt,如下所示:

    nativeCompileOptions := Seq("-v",  
    "-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.3.sdk")

    nativeLinkingOptions := Seq("-v",
    "-I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include",
    "-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib",
    "-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.3.sdk")
Run Code Online (Sandbox Code Playgroud)
  • 当对nativelib中包含的c文件进行初始编译时(例如,换行,时间,dyndispatch,gc,posix,eh(c ++),展开和目标)我无法看到为sbt编译添加选项的方法命令行.由于这些编译创建了.o文件(而不是.ll),因此一旦这些编译完成,目标平台就已经设置好了.示例编译如下:

    /Users/nnovod/tools/clang+llvm-4.0.0-x86_64-apple-darwin/bin/clang  
    -I/usr/local/include  
    -I/Users/nnovod/tools/clang+llvm-4.0.0-x86_64-apple-darwin/include  
    -c  
    /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/posix.c  
    -o
    /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/posix.c.o  
    
    Run Code Online (Sandbox Code Playgroud)
  • 在编译scala-native代码时,我可以通过nativeCompileOptions添加选项,并添加xcode模拟器sdk目录作为系统根目录(-isysroot .../iPhoneSimulator.10.3.sdk)似乎可以解决问题,尽管有关于"使用x86_64-apple-ios10.3.0覆盖模块目标三元组"

  • 链接时存在两个问题:a)找不到gc库(我是否需要为iOS构建一个?Boehm的交叉构建?)b)为MacOS完成的初始编译,现在与iOS完成的编译冲突.以下是sbt生成的链接命令:

    "/usr/bin/ld" -demangle -lto_library /Users/nnovod/tools/clang+llvm-4.0.0-x86_64-apple-darwin/lib/libLTO.dylib -dynamic -arch x86_64 -ios_simulator_version_min 10.3.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.3.sdk -o /Users/nnovod/projects/scalaNative/target/scala-2.11/scalanative-out -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib -lgc /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/__const.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/__dispatch.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/__empty.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/__extern.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/__instance.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/__main.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/example.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/java.io.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/java.lang.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/java.lang.reflect.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/java.nio.charset.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/java.nio.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/java.util.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/niocharset.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.collection.generic.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.collection.immutable.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.collection.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.collection.mutable.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.collection.script.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.compat.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.io.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.math.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.reflect.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.runtime.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.scalanative.native.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.scalanative.runtime.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.util.control.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.util.hashing.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/ll/scala.util.ll.o /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/dyndispatch.c.o /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/eh.cpp.o /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/gc.c.o /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/posix.c.o /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/time.c.o /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/unwind.c.o /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/wrap.c.o -lc++ -lSystem /Users/nnovod/tools/clang+llvm-4.0.0-x86_64-apple-darwin/bin/../lib/clang/4.0.0/lib/darwin/libclang_rt.ios.a …
    Run Code Online (Sandbox Code Playgroud)

scala-native

10
推荐指数
1
解决办法
824
查看次数

标签 统计

scala-native ×1