- 注意cmake构建类型应该设置为 Release
- 全大写的变量是cmake内置的,前面小写的变量是自定义的
- 编译的结果最终在build/Release目录下
- 修改llama.cpp/ggml/src/ggml.c中的FILE * ggml_fopen(const char * fname, const char * mode)函数 -> 只要保留return fopen(fname, mode);其余删除
- thirdparty\llama.cpp\ggml\src\ggml-vulkan\CMakeLists.txt ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} 全部替换为 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}
- 修改llama.cpp/examples/server/cmakelists.txt -> add_custom_command中xxd.cmake文件路径修改为 "${PROJECT_SOURCE_DIR}/thirdparty/llama.cpp/scripts/xxd.cmake"
- 禁用掉thirdparty\llama.cpp\common\CMakeLists.txt 里的add_custom_command相关 但是确保手动加上build-info.cpp文件
- 注释掉llama-bench.cpp main中的setlocale(LC_CTYPE, ".UTF-8"); 以支持中文
- 解除 thirdparty\llama.cpp\examples\llava\clip.cpp 中对GPU后端的注释,支持图像加速解码,但是部分模型会闪退
- 删除自己的ggml文件夹
- 修改cmakelists.txt中set(BUILD_SHARED_LIBS ON)以支持动态链接
- 删除更改stable-diffusion.cpp中的几处LOG_DEBUG以支持mingw
- 如果要依赖本身的ggml,则改名为sd-前缀的所有ggml库,尤其是在链接时target_link_libraries要链接sd-前缀的库
- 删除自己的ggml文件夹
- 删除whisper.cpp中的whisper_init_from_file_with_params_no_state里的#ifdef _MSC_VER部分以支持中文
- 将examples中的common库更名为whisper-common
- examples/main的taget名称改为whisper-cli
- src里控制ggml库的链接
- 手动关闭不需要的组件,例如test等