MySQL8.4 的代码在 Mac 上编译报错了?

27 天前
 waterlaw

git clone -b 8.4 https://github.com/mysql/mysql-server.git

mkdir build

cd build

cmake .. -DWITH_DEBUG=1
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/Users/zjp/Projects/mysql-server/build/boost
-DCMAKE_INSTALL_PREFIX=/Users/zjp/Projects/mysql-server/build/install
-DMYSQL_DATADIR=/Users/zjp/Projects/mysql-server/build/install/data

make -j8

输出日志

[ 17%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/ufieldpositer.cpp.o [ 17%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uitercollationiterator.cpp.o [ 17%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/ulistformatter.cpp.o [ 17%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/ulocdata.cpp.o [ 17%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/umsg.cpp.o [ 17%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/unesctrn.cpp.o [ 17%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uni2name.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/units_complexconverter.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/units_converter.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/units_data.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/units_router.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/unum.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/unumsys.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/upluralrules.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uregexc.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uregex.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uregion.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uspoof_build.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/usearch.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uspoof_conf.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uspoof.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/uspoof_impl.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/utf16collationiterator.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/utf8collationiterator.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/utmscale.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/utrans.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/vtzone.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/vzone.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/zonemeta.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/zrule.cpp.o [ 18%] Building CXX object extra/icu/CMakeFiles/icui18n.dir/icu-release-73-1/source/i18n/ztrans.cpp.o [ 18%] Linking CXX static library libicui18n.a [ 18%] Built target icui18n [ 18%] Linking CXX executable ../../../../runtime_output_directory/routertest_mysql_protocol_classic_protocol_message [ 18%] Built target routertest_mysql_protocol_classic_protocol_message make: *** [all] Error 2

主要是弹窗让我安装 m4, 安装了下次编译还给我弹出来,这有办法破解吗?

792 次点击
所在节点    MySQL
1 条回复
ShuA1
25 天前
出现这个问题通常是因为缺少 m4 工具或路径配置问题,特别是如果在 macOS 或 Linux 系统中。如果你已经安装了 m4 ,但编译过程仍提示需要安装,可以尝试以下解决方案:

1. 确认 m4 是否正确安装
首先,确保 m4 已正确安装并且在系统路径中可用。你可以运行以下命令检查:
> which m4
如果 m4 已安装,此命令应返回 m4 的路径。如果未安装,可以使用以下命令进行安装:

macOS (使用 Homebrew):
> brew install m4

2. 确认路径
有时候,即使安装了 m4 ,系统路径中可能没有包含它。可以手动添加路径:
> export PATH=/usr/local/bin:$PATH
将 /usr/local/bin 替换为 m4 安装路径所在的位置。

3. 清理缓存和重新编译
有时候,CMake 的缓存会导致问题。尝试清理缓存并重新生成 Makefile:
> cd /path/to/your/build
> rm -rf *
> cmake .. -DWITH_DEBUG=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/Users/zjp/Projects/mysql-server/build/boost -DCMAKE_INSTALL_PREFIX=/Users/zjp/Projects/mysql-server/build/install -DMYSQL_DATADIR=/Users/zjp/Projects/mysql-server/build/install/data
> make -j8
4. 使用 autoreconf
在某些情况下,m4 需要 autoconf 配合工作。可以尝试安装 autoconf 并使用 autoreconf:
macOS:
> brew install autoconf

然后在源码目录运行:
> autoreconf -i

5. 检查权限
确保你有足够的权限执行 m4 以及所有相关工具。如果使用的是 macOS ,可能需要通过 sudo 安装工具:
> sudo brew install m4

6. 验证 m4 版本
有时候,编译可能需要特定版本的 m4 。你可以检查版本并更新:
> m4 --version

如果这些步骤无法解决问题,请提供更多的编译错误日志以便进一步诊断。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1045933

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX