2017-04-05 18 views
1

試圖在原生scala中構建Hello World示例(在MacOS 10.11.6上)鏈接時出現以下錯誤。應該在哪裏定義_scalanative_alloc和_scalanative_init?在我的主程序中?如果是的話,它應該被定義爲什麼?斯卡拉原生世界無法找到_scalanative_alloc

[info] /Users/nnovod/tools/clang+llvm-4.0.0-x86_64-apple-darwin/bin/clang++ 
[info] -o 
[info] /Users/nnovod/projects/scalaNative/target/scala-2.11/scalanative-out 
[info] -lgc 
[info] -I/usr/local/include 
[info] -I/Users/nnovod/tools/clang+llvm-4.0.0-x86_64-apple-darwin/include 
[info] -L/usr/local/lib 
[info] -L/Users/nnovod/tools/clang+llvm-4.0.0-x86_64-apple-darwin/lib 
[info] -target 
[info] x86_64-apple-macosx10.11.0 
... 

[info] /Users/nnovod/projects/scalaNative/target/scala-2.11/nativelib/wrap.c.o 
[error] Undefined symbols for architecture x86_64: 
[error] "_scalanative_alloc", referenced from: 
[error]  _example.Main$::load in example.ll.o 
[error]  _java.io.OutputStream::write_class.ssnr.ByteArray_i32_i32_unit in java.io.ll.o 
[error]  _java.io.OutputStreamWriter::writeImpl_class.java.nio.CharBuffer_unit in java.io.ll.o 
[error]  _java.io.PrintStream::flush_unit in java.io.ll.o 
[error]  _java.io.PrintStream::write_i32_unit in java.io.ll.o 
[error]  _java.io.PrintStream::java$io$PrintStream$$encoder$lzycompute_class.java.io.OutputStreamWriter in java.io.ll.o 
[error]  _java.io.PrintStream::write_class.ssnr.ByteArray_i32_i32_unit in java.io.ll.o 
[error]  ... 
[error] "_scalanative_init", referenced from: 
[error]  _main in __main.ll.o 
[error] ld: symbol(s) not found for architecture x86_64 
[error] clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation) 
[info] Compiling LLVM IR to native code (1422 ms) 
[info] Total (5920 ms) 
[info] running 
[info] /Users/nnovod/projects/scalaNative/target/scala-2.11/scalanative-out 
java.io.IOException: Cannot run program "/Users/nnovod/projects/scalaNative/target/scala-2.11/scalanative-out": error=2, No such file or directory 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 
Caused by: java.io.IOException: error=2, No such file or directory 
    at java.lang.UNIXProcess.forkAndExec(Native Method) 
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:248) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:134) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 
[trace] Stack trace suppressed: run last *:run for the full output. 
[error] (*:run) java.io.IOException: Cannot run program "/Users/nnovod/projects/scalaNative/target/scala-2.11/scalanative-out": error=2, No such file or directory 
[error] Total time: 6 s, completed Apr 5, 2017 10:40:54 AM 

回答

2

我完全刪除了我的項目的目標子目錄,然後做了一個新的「sbt運行」,一切正常。