[erlang-questions] Building C code in dep with rebar3: c_src not found

Igor Clark <>
Wed Jan 23 20:35:50 CET 2019


Hi everyone,

I have an simple app which has a C port in it. I have a rebar.config from which it builds correctly when I run 'rebar3 compile' inside the app directory:

> { erl_opts, [debug_info] }.
> { deps, [] }.
> 
> { plugins, [
> 	{ pc, { git, "https://github.com/blt/port_compiler.git", { tag, "v1.10.1" } } }
> ] }.
> 
> { provider_hooks, [
> 	{ pre, [
> 		{ compile, { pc, compile }},
> 		{ clean, { pc, clean }}
> 	] }
> ] }.
> 
> { port_specs, [
> 	{ "priv/bin/my_port_binary", [
> 		"c_src/my_c_file.1.c",
> 		"c_src/subdir/my_c_file_2.c"
> 	] }
> ] }.
> 
> { port_env, [
> 	{ "CFLAGS", "$CFLAGS -Ic_src/ -g -Wall -Werror -O2" }
> ] }.


Compiling this works fine. The artifact is created in priv/bin, and running myapp:module_info() inside the shell shows the right details.

However, when I try to include this app as a dependency, I get this error:

> ===> Found no source files for:
> "c_src/my_c_file.1.c"
> ===> Found no source files for:
> "c_src/subdir/my_c_file_2.c"


I've included src, c_src and rebar.config in the 'files' entry in src/my_app.app.src.

I've also included a jiffy dep as a test to make sure C code gets built correctly, and that works fine, but I can't see what jiffy's config has that I don't.

Anyone know what I'm missing to make this work?

Thanks very much!
Igor


More information about the erlang-questions mailing list