elixir-lang / tree-sitter-elixir

Elixir grammar for tree-sitter
https://elixir-lang.org/tree-sitter-elixir
Apache License 2.0
245 stars 24 forks source link

cargo test fails #29

Closed VitorTrin closed 2 years ago

VitorTrin commented 2 years ago

I'm attemting to build this project (I also would like some small section on the readme on how to do that), and while cargo build and even cargo build --release go without a hitch, cargo test fails

   Compiling tree-sitter-elixir v0.19.0 (/home/vitor/Aplicacoes/tree-sitter-elixir)
error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-m64" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.0.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.1.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.10.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.11.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.2.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.3.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.4.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.5.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.6.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.7.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.8.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.tree_sitter_elixir.38e31585-cgu.9.rcgu.o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6.3e2qyl44hxrxlb8k.rcgu.o" "-Wl,--as-needed" "-L" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps" "-L" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/build/tree-sitter-elixir-0ecc9b06704dde08/out" "-L" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/build/tree-sitter-e92009e3c50b5d76/out" "-L" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "-lparser" "-Wl,--no-whole-archive" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-758a09c353a92957.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-743b1b40789d9970.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-03c847826ae3c573.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-b1a47273c37bf80e.rlib" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/libtree_sitter-05d0913dbbaac8cb.rlib" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/libregex-11dccc46ec595cde.rlib" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/libaho_corasick-970a5f30fe00cf11.rlib" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/libmemchr-bc7103d2fd7c9396.rlib" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/libregex_syntax-930967c34ea90294.rlib" "-Wl,--start-group" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-a46a068050a12a4b.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-1df56095db9453cb.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-9062de483386e50b.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-b988ab269ff13602.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-1bc822d886d4f7bd.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-963eca8df4c224a6.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-d805b480c9102e58.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-06dfdbc22b935051.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-d7523a4d118e6572.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-5d7898c7fac3a07d.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-8c2bdbab4845bf3d.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-d578639df0547b30.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-58bbb7b1efa3a5e2.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-4c9b082d197c16f8.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-70f9ed6d8e7a5ce6.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-8c0a241d0360fa53.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-bad7ed93fdd31371.rlib" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-98b4d121af2b7335.rlib" "-Wl,--end-group" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-1d9f7e5920635d15.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/vitor/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/deps/tree_sitter_elixir-48cd3c577867e3b6" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs"
  = note: /usr/bin/ld: /home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/build/tree-sitter-elixir-0ecc9b06704dde08/out/libparser.a(parser.o):(.data.rel.ro.language.0+0xb8): undefined reference to `tree_sitter_elixir_external_scanner_create'
          /usr/bin/ld: /home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/build/tree-sitter-elixir-0ecc9b06704dde08/out/libparser.a(parser.o):(.data.rel.ro.language.0+0xc0): undefined reference to `tree_sitter_elixir_external_scanner_destroy'
          /usr/bin/ld: /home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/build/tree-sitter-elixir-0ecc9b06704dde08/out/libparser.a(parser.o):(.data.rel.ro.language.0+0xc8): undefined reference to `tree_sitter_elixir_external_scanner_scan'
          /usr/bin/ld: /home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/build/tree-sitter-elixir-0ecc9b06704dde08/out/libparser.a(parser.o):(.data.rel.ro.language.0+0xd0): undefined reference to `tree_sitter_elixir_external_scanner_serialize'
          /usr/bin/ld: /home/vitor/Aplicacoes/tree-sitter-elixir/target/debug/build/tree-sitter-elixir-0ecc9b06704dde08/out/libparser.a(parser.o):(.data.rel.ro.language.0+0xd8): undefined reference to `tree_sitter_elixir_external_scanner_deserialize'
          collect2: error: ld returned 1 exit status

  = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

error: could not compile `tree-sitter-elixir` due to previous error

also, is there any reason HIGHLIGHTS_QUERY isn't exposed in lib.rs?

jonatanklosko commented 2 years ago

Closed via #30.

the-mikedavis commented 2 years ago

For building: it depends on how you want to use the parser and queries. Most tree-sitter consumers I have seen will clone a grammar repository, maybe run tree-sitter generate using the tree-sitter-cli, and then compile the generated C files with a C/C++ compiler. A good example in Rust is this code in the tree-sitter-cli's loader module. The tree-sitter Using Parsers docs also have some guidance on this.