我正在尝试迁移我一直致力于使用GNU Make的Rake insead的C应用程序.文件树是这样的:
project
??? LICENSE.md
??? Makefile
??? Rakefile
??? README.md
??? src
??? debug.h
??? main.c
??? queue.c
??? queue.h
??? ui
??? ui.c
??? ui.h
Run Code Online (Sandbox Code Playgroud)
我想在一个单独的build目录中构建每个文件,并.c使用gcc或clang在deps目录中生成每个文件的依赖项.
我似乎无法找到如何编写Rakefile来编译C项目的任何示例.有没有人有链接或一些建议来帮助我开始?
编辑:我有一个临时的Rakefile,它完成了我想要它最终完成的一些任务.我想检测是否安装了clang并使用clang或gcc.
这是我目前的Rakefile https://github.com/Rostepher/spoticli/blob/master/Rakefile
我目前正在研究字符串度量库,它计算字符串之间的各种距离并报告字符串彼此之间的相似程度.例如Levenshtein距离(https://en.wikipedia.org/wiki/Levenshtein_distance).
unsigned levenshtien(const char *str1, const char *str2)
{
// check for NULL pointers
if (str1 == NULL && str2 == NULL)
return 0;
if (str1 != NULL && str2 == NULL)
return strlen(str1);
if (str1 == NULL && str2 != NULL)
return strlen(str2);
// calculate length of strings
size_t str1_len = strlen(str1);
size_t str2_len = strlen(str2);
// handle cases where one or both strings are empty
if (str1_len == 0)
return (str2_len == 0) ? 0 : …Run Code Online (Sandbox Code Playgroud)