(本文仅作为记录,还有待完善的地方)
问题点:Clion 使用了 cmake 来管理项目,所以我们需要在 Redis 源码根目录下为它创建好 CMakeLists.txt 才能进行构建。
尝试调试最新版Redis报错排查
刚开始参考 mac + CLion + redis5 本地调试/运行 进行调试,过程中遇到了一些新的问题,记录如下:
deps/hiredis/CMakeLists.txt
CMake Error at deps/hiredis/CMakeLists.txt:168 (add_library):
add_library cannot create target "hiredis" because another target with the
same name already exists. The existing target is a shared library created
in source directory "/Users/cfq/CLionProjects/redis/deps/hiredis". See
documentation for policy CMP0002 for more details.
-- Configuring incomplete, errors occurred!
See also "/Users/cfq/CLionProjects/redis/CMakeFiles/CMakeOutput.log".
应该是因为新版本的代码,作者已经在 deps/hiredis/
目录下加了 CMakeLists.txt
文件,照着这个文章里的步骤三会有重复添加,所以把刚才添加的删了就好。
再次执行cmake .
,结果如下:
$ cmake .
Detected version: 1.0.0
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/cfq/CLionProjects/redis
说明 cmake
操作已经好了。
ae_kqueue.c
之后执行 make
命令,出现了ae_kqueue.h
文件的错误,因为mac和linux的异步机制用到的库不一样,所以需要修改;
在ae_kqueue.c文件中添加下面两行即可。
#include "ae.h"
#include "zmalloc.h"
修改后,再次make
,又报如下错误:
[ 34%] Building C object CMakeFiles/redis-server.dir/src/ae_kqueue.c.o
/