自行编译llama.cpp的笔记。
cmake列出所有选项
在llama.cpp目录下:
1 | cmake -B build -LH |
H是human readable。这样就可以定制自己想要编译的内容了,比如不编译test。
只编译 llama-server
我只需要 llama-server,其他的 tool 都不感兴趣,那么 cmake 打开和关闭的选项如下:
1 | cmake -B build \ |
因为有 Nvidia 显卡所以启用 CUDA,但是因为是单卡所以不需要 CUDA_GRAPHS。因为已经提前下载好模型,所以不需要运行时拉取模型的功能,禁用curl。而那四个LLAMA_BUILD_是测试过,如果 COMMON 和 TOOLS 设置成 OFF,cmake --build时会提示没有 llama-server 这个 target。虽然加速框架用的是CUDA,但是不得不启用 CPU,否则在加载模型的时候会报错 no CPU backend 无法加载。
配置好之后编译:
1 | cmake --build build --config Release --target llama-server |
多线程的话加个 -j 在后面就行。
exception specification incompatible error
(2025-10-30)如果 cmake configure 时候就报错 exception specification is incompatible with that of previous function "rsqrt",那么就是 CUDA 版本跟 GCC 版本不兼容的问题。比如 Archlinux 的 GCC 15 跟 CUDA 12 就会爆这个,但是更新到 CUDA 13 就好了。