我尝试从源代码编译 mysql-workbench(因为 mysql 的 fedora 21 repo 仍然没有它)。按照许多在线资源的建议安装了所有依赖项。目前我被困在以下错误消息中,不知道如何继续。有人能帮帮我吗?
[root@localhost wb-build]# cmake .. -DBUILD_CONFIG=mysql_release
-- C/C++ version 1.1.4+: TRUE
-- C/C++ version 1.1.5+: 1
Found iodbc, using it as ODBC library.
- checking for module 'gnome-keyring-1'
-- package 'gnome-keyring-1' not found
-- checking for module 'gnome-keyring'
-- package 'gnome-keyring' not found
Using bundled Antlr C runtime
Generating mysql.parser files...
The antlr-3.4-complete.jar file could not be found.
Please make sure that linux-res is in /home/sherzodr/Downloads or add the ANTLR_JAR_PATH enviroment variable with the path to the file.
You'll also need Java Runtime Enviroment installed, so the parser files can be regenerated.
CMake Error at library/mysql.parser/grammar/CMakeLists.txt:9 (message):
Generating mysql.parser files failed with result='1'
-- Configuring incomplete, errors occurred!
顺便说一句,我还尝试安装 Fedora 20 rpm 和 RedHat 软件包;它们都安装得很好,但结果集为空。所以从源代码重新编译是我唯一的选择。
谢谢
答案1
经过几天的尝试,我终于在 Fedora 21 上成功编译了 mysql-workbench 6.2.4。我确认它可以正常工作。结果集中的网格不再为空。
@Brady 建议使用 antlr-3.5.2-complete.jar,但对我不起作用。相反,需要 antlr-3.4.2-complete.jar。否则会生成不兼容的头文件(这是导致与 MySQLLexer 的 C 代码相关的错误的原因)。@Brady 的所有其他建议都是成功的必要条件,包括与 recordset_text_storage.cpp 相关的源更新。
@lorelogo 的建议是正确的,但为了进一步采纳他的建议,我还必须删除 antlr-3.5.2-complete.jar 生成的所有头文件(它们不在 wb-build/ 文件夹中,而是在父文件夹中)。中间切换到 antlr-3.4.2-complete.jar 并不是解决办法,因为它不会重新生成头文件。对我来说,重新提取 mysql-workbench 的源存档并重新开始更容易。
如果您没有安装 ctemplate 2.2(fc21 存储库中没有),您会开始收到其他编译错误,通常与缺少 ctemplate/template.h 或 Ctemplate::* 类型定义有关。从以下位置获取 ctemplate 2.2 非常重要https://code.google.com/p/ctemplate/downloads/list并自行编译。但由于 mysql-workbench 在 /usr/lib64/ 中查找 ctemplate.so.2,但“make install”将其安装在我的 /usr/local/lib 文件夹中,因此我通过执行以下操作在 /usr/lib64 中创建了符号链接
ln -s /usr/local/lib/libctemplate* .
我不需要最后一步就能成功编译。但如果没有这一步,编译后的工作台就无法启动(因为它尝试加载 /usr/lib64/libctemplate.so.2)。
尽管我现在正在使用 mysql-workbench,但我很难忽略 GLib-GObject-WARNING 的所有警告。我可能会尝试降级 glib,看看是否能解决问题。
由于这个问题持续了一周,我可能忘记了解决此问题需要采取的其他一些步骤。只需发布您遇到的问题即可。这可能会帮助我回忆起其他细节。
感谢大家。没有你们我不可能做到!
答案2
对于 Antlr 错误,我使用以下二进制文件后它就消失了:antlr-3.5.2-完整版.jar。
您可以在ANTLR v3 下载页面。
对于我来说,指定的 3.4 完整二进制文件不起作用。
下载到您喜欢的位置后,只需尝试发出以下命令:
ANTLR_JAR_PATH=/path/to/jar/antlr-3.5.2-complete.jar cmake -DBUILD_CONFIG=mysql_release
对于 gnome-keyring 错误,一个简单的
sudo yum install libgnome-keyring-devel
应该做。
此外,在此之前,请记住遵循修补解决方案就像先前的答案摆脱弃用的功能(如果您还没有这样做的话)。
答案3
下载 JAR 文件对我来说并不完全有效。它帮助我完成了 mysql-workbench 的 cmake 步骤,但是一旦我开始使用 make 进行编译,我就会遇到很多与 antlr 相关的错误。
我发现 antlr 位于发行版附带的 Fedora 21 存储库中。这使我可以开始编译 mysql-workbench。开始...但没有完成,因为我现在遇到了一些与此处主题无关的 C 代码问题。
sudo yum install antlr-tool antlr3-java
答案4
适用于 Fedora 21 64 位的 RPM 包(mysql-workbench-community-6.2.5-1.fc21.x86_64.rpm)现已在官方 MySQL 下载页面上提供: