Hajto

Hajto

My elixir project indirectly uses crc which has NIFs. They won’t compile. It look like the linked does not see the libraries.

rtp_to_hls ●  rm -rf deps/ _build/ && mix deps.get && mix compile

==> crc
 C      checksum_xor.c
 C      crc_8.c
 C      crc_algorithm.c
 C      crc_model.c
 C      crc_nif.c
 C      crc_resource.c
 C      xnif_slice.c
 LD     crc_nif.so
Undefined symbols for architecture x86_64:
  "_enif_alloc", referenced from:
      _crc_model_load in crc_model.o
      _kh_resize_crc_stubs in crc_model.o
      _kh_resize_crc_models in crc_model.o
      _crc_nif_debug_table_1 in crc_nif.o
  "_enif_alloc_resource", referenced from:
      _crc_resource_create in crc_resource.o
      _crc_resource_clone in crc_resource.o
      _xnif_slice_create in xnif_slice.o
      _xnif_slice_create_x in xnif_slice.o
  "_enif_consume_timeslice", referenced from:
      _xnif_slice_trap in xnif_slice.o
  "_enif_free", referenced from:
      _crc_model_load in crc_model.o
      _crc_model_unload in crc_model.o
      _kh_resize_crc_stubs in crc_model.o
      _kh_resize_crc_models in crc_model.o
      _crc_nif_debug_table_1 in crc_nif.o
  "_enif_get_map_size", referenced from:
      _crc_init in crc_nif.o
      _crc_init_map_extend in crc_nif.o
  "_enif_get_map_value", referenced from:
      _crc_init in crc_nif.o
      _crc_init_map_extend in crc_nif.o
  "_enif_get_resource", referenced from:
      _crc_resource_get in crc_resource.o
      _xnif_slice_trap in xnif_slice.o
  "_enif_get_tuple", referenced from:
      _crc_init_tuple in crc_nif.o
  "_enif_get_uint", referenced from:
      _crc_nif_checksum_xor_1_work in checksum_xor.o
      _crc_nif_checksum_xor_1_done in checksum_xor.o
      _crc_nif_crc_8_2 in crc_8.o
      _crc_nif_crc_8_init_1 in crc_8.o
      _crc_nif_crc_8_update_2 in crc_8.o
      _crc_nif_crc_8_final_1 in crc_8.o
      _crc_nif_crc_8_2_work in crc_8.o
      ...
  "_enif_get_ulong", referenced from:
      _crc_init_tuple in crc_nif.o
  "_enif_inspect_binary", referenced from:
      _crc_nif_checksum_xor_1 in checksum_xor.o
      _crc_nif_checksum_xor_1_work in checksum_xor.o
      _crc_nif_crc_8_2 in crc_8.o
      _crc_nif_crc_8_update_2 in crc_8.o
      _crc_nif_crc_8_2_work in crc_8.o
      _crc_nif_crc_8_update_2_work in crc_8.o
  "_enif_inspect_iolist_as_binary", referenced from:
      _crc_nif_crc_fast_2 in crc_nif.o
      _crc_nif_crc_fast_update_2 in crc_nif.o
      _crc_nif_crc_slow_2 in crc_nif.o
      _crc_nif_crc_slow_update_2 in crc_nif.o
      _crc_nif_crc_fast_2_work in crc_nif.o
      _crc_nif_crc_fast_update_2_work in crc_nif.o
      _crc_nif_crc_slow_2_work in crc_nif.o
      ...
  "_enif_is_atom", referenced from:
      _crc_init in crc_nif.o
  "_enif_is_map", referenced from:
      _crc_init in crc_nif.o
  "_enif_is_ref", referenced from:
      _crc_init in crc_nif.o
  "_enif_is_tuple", referenced from:
      _crc_init in crc_nif.o
  "_enif_keep_resource", referenced from:
      _crc_resource_create in crc_resource.o
      _crc_resource_clone in crc_resource.o
  "_enif_make_atom", referenced from:
      _crc_model_load in crc_model.o
      _crc_model_list in crc_model.o
      _crc_nif_make_atoms in crc_nif.o
  "_enif_make_badarg", referenced from:
      _crc_nif_checksum_xor_1 in checksum_xor.o
      _crc_nif_checksum_xor_1_done in checksum_xor.o
      _crc_nif_crc_8_2 in crc_8.o
      _crc_nif_crc_8_init_1 in crc_8.o
      _crc_nif_crc_8_update_2 in crc_8.o
      _crc_nif_crc_8_final_1 in crc_8.o
      _crc_nif_crc_8_2_done in crc_8.o
      ...
  "_enif_make_list_from_array", referenced from:
      _crc_nif_debug_table_1 in crc_nif.o
  "_enif_make_map_put", referenced from:
      _crc_model_list in crc_model.o
      _crc_nif_crc_info_1 in crc_nif.o
  "_enif_make_new_binary", referenced from:
      _crc_model_list in crc_model.o
      _crc_nif_crc_info_1 in crc_nif.o
  "_enif_make_new_map", referenced from:
      _crc_model_list in crc_model.o
      _crc_nif_crc_info_1 in crc_nif.o
  "_enif_make_resource", referenced from:
      _crc_nif_crc_fast_2 in crc_nif.o
      _crc_nif_crc_fast_init_1 in crc_nif.o
      _crc_nif_crc_fast_update_2 in crc_nif.o
      _crc_nif_crc_slow_2 in crc_nif.o
      _crc_nif_crc_slow_init_1 in crc_nif.o
      _crc_nif_crc_slow_update_2 in crc_nif.o
      _xnif_slice_schedule in xnif_slice.o
      ...
  "_enif_make_tuple", referenced from:
      _crc_nif_debug_table_1 in crc_nif.o
      _crc_init in crc_nif.o
      _crc_init_map_extend in crc_nif.o
  "_enif_make_uint", referenced from:
      _crc_nif_checksum_xor_1 in checksum_xor.o
      _crc_nif_checksum_xor_1_work in checksum_xor.o
      _crc_nif_checksum_xor_1_done in checksum_xor.o
      _crc_nif_crc_8_2 in crc_8.o
      _crc_nif_crc_8_init_1 in crc_8.o
      _crc_nif_crc_8_update_2 in crc_8.o
      _crc_nif_crc_8_final_1 in crc_8.o
      ...
  "_enif_make_ulong", referenced from:
      _crc_nif_debug_table_1 in crc_nif.o
      _crc_nif_crc_fast_2 in crc_nif.o
      _crc_nif_crc_fast_final_1 in crc_nif.o
      _crc_nif_crc_slow_2 in crc_nif.o
      _crc_nif_crc_slow_final_1 in crc_nif.o
      _crc_nif_crc_info_1 in crc_nif.o
      _crc_nif_crc_residue_1 in crc_nif.o
      ...
  "_enif_monotonic_time", referenced from:
      _xnif_slice_trap in xnif_slice.o
  "_enif_open_resource_type", referenced from:
      _crc_resource_load in crc_resource.o
      _crc_resource_upgrade in crc_resource.o
      _xnif_slice_load in xnif_slice.o
      _xnif_slice_upgrade in xnif_slice.o
  "_enif_realloc", referenced from:
      _kh_resize_crc_stubs in crc_model.o
      _kh_resize_crc_models in crc_model.o
  "_enif_release_resource", referenced from:
      _crc_nif_crc_fast_2 in crc_nif.o
      _crc_nif_crc_fast_init_1 in crc_nif.o
      _crc_nif_crc_fast_update_2 in crc_nif.o
      _crc_nif_crc_slow_2 in crc_nif.o
      _crc_nif_crc_slow_init_1 in crc_nif.o
      _crc_nif_crc_slow_update_2 in crc_nif.o
      _crc_nif_crc_residue_1 in crc_nif.o
      ...
  "_enif_schedule_nif", referenced from:
      _xnif_slice_schedule in xnif_slice.o
      _xnif_slice_trap in xnif_slice.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/Users/hajtojakub/Projects/membrane-demo/rtp_to_hls/_build/dev/lib/crc/priv/crc_nif.so] Error 1
could not compile dependency :crc, "mix compile" failed. You can recompile this dependency with "mix deps.compile crc", update it with "mix deps.update crc" or clean it with "mix deps.clean crc"
==> membrane_demo_rtp_to_hls
** (Mix) Could not compile with "make" (exit status: 2).
You need to have gcc and make installed. Try running the
commands "gcc --version" and / or "make --version". If these programs
are not installed, you will be prompted to install them.

I proceeded to check the env:

  rtp_to_hls ●  gcc --version                                     
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin



rtp_to_hls ●  make --version                                     
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

This is most likely configuration issue. I will post minimal reproducible project though

I tried using gnu gcc by aliasing it, but it does not work.

Showing Posts 1 to 2

dimitarvp

dimitarvp

I am afraid in many such cases you are on your own – or at the mercy of the responsiveness of the author.

That being said, you could extract the C headers and source in a separate directory and duplicate the compilation / linking options (found somewhere in the Elixir dependency’s files) as a stand-alone project and try and chip away at that and/or share it on GitHub for us here to try and help.

outlog

outlog

think it’s more the local install something is up with, how is erlang and elixir installed?

asdf? (asdf) - I would very much suggest using asdf..

also maybe try and install latest xcode and open it once to install the extras (I know you already have command line tools install.. but still)

— All posts loaded —

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
matt-savvy
Anyone here using Honeybadger? My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of Bandit.HTTPError...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews