在我的 Ubuntu 20.04机器上构建rocksdb 。我收到以下错误:
In file included from db/malloc_stats.cc:16:
./port/jemalloc_helper.h:63:29: error: 'je_malloc' attribute directive ignored [-Werror=attributes]
63 | __attribute__((__weak__));
| ^
我正在使用简单的编译器make -j
,并且安装了所有列出的依赖项,包括libjemalloc-dev
,但我尝试卸载它无济于事。gcc 版本是 9.3.0。重新安装它也是如此。这些属性指令是我完全不熟悉的 C++ 领域,我不知道如何诊断这个问题。如果我通过DISABLE_WARNING_AS_ERROR
,我最终会出现链接器错误,所以很明显这个错误是有意义的。值得注意的是,我最近能够在这台机器上构建它,我不记得更改任何会影响它的东西。我进行了系统更新,但据我所知,没有其他可能导致这种情况的发生。我已经检查了 Rocksdb 以前的提交,我得到了同样的错误,所以问题肯定在我的最后,但我已经和同事核实过,他们都没有这个问题。任何有关如何诊断此问题的想法或建议将不胜感激。
编辑:我刚刚尝试make
单独运行,虽然它花了很长时间,但构建成功了。这是不切实际的,我仍然完全不知道如何诊断这个问题。
编辑2:成功的构建make
并不一致,尽管我相信它至少成功了一次。当它不成功时,我会收到与上述相同的错误。