Hajto
CRC library does not compile on MacOS
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.
First Post!
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.
0
Last Post!
outlog
Popular in Questions
Hi,
I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this:
...
New
Hello everyone,
I try to use an Javascript Event Handler in my root.html.leex file.
Therefore I created a function in the app.js file: ...
New
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service.
Currently when I de...
New
Other popular topics
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum.
...
New
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!)
This post collects co...
New
Hello everyone,
Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
New
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









