我有 rebar设置以构建使用两个不同 c 文件的 erlang 模块。
我在 rebar.config
中设置了 c 编译选项(例如):
{port_env, [{"DRV_CFLAGS", "$DRV_CFLAGS -Wall -Wextra"}]}.
是否可以为每个c源文件设置不同的选项?我希望每个都有不同的编译器和链接器标志。
如果不是,最常见的替代方案/解决方法是什么?我想创建一个 Makefile 并将 c 编译移到那里是可行的,当 rebar 很好地处理其余部分时,不得不这样做似乎很遗憾。
最佳答案
疯狂的想法:您可以使用pre_hooks
和post_hooks
来执行shell 脚本。在 rebar 完成它的工作后,也许你可以运行你自己的 shell 脚本来使用你想要的编译器和标志编译文件。
有关预处理的示例,请查看 SHA-2 标准的 Steve Vinoskis NIF 实现。查看他的 rebar.config和 c_src/config.sh
关于erlang - 如何使用 rebar 在每个文件的基础上使用不同的 c 编译器/链接器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5936246/