急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
ggxxkkll
帖子: 8
注册时间: 2013-03-13 15:35
系统: win7

急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#1

帖子 ggxxkkll » 2013-03-13 15:58

本人在Ubuntu10.04 编译安装mysql-6.0.0-alpha遇到了如下问题:

执行
sudo make

最后结果如下:

mysql.cc: In function ‘void print_table_data(MYSQL_RES*)’:
mysql.cc:2355: error: ‘max’ was not declared in this scope
mysql.cc:2357: error: ‘max’ was not declared in this scope
mysql.cc:2378: error: ‘min’ was not declared in this scope
mysql.cc: In function ‘int com_edit(String*, char*)’:
mysql.cc:2849: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
make[2]: *** [mysql.o] Error 1
make[2]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha/client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha'
make: *** [all] Error 2


请教高手,以上错误该如何解决?
万分感谢!!!!
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#2

帖子 YeLee » 2013-03-14 9:16

嗯,很好。 :em09 :em09 :em09
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
ggxxkkll
帖子: 8
注册时间: 2013-03-13 15:35
系统: win7

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#3

帖子 ggxxkkll » 2013-03-14 9:40

YeLee 写了:嗯,很好。 :em09 :em09 :em09

什么意思,帮忙解决问题啊!!!
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#4

帖子 YeLee » 2013-03-14 12:49

这也就是为什么采用特定版本的软件会在不同版本的gcc中会编译失败的原因了,倒是可以自己写个补丁,打进去。看那错误,应该是一个返回两个数中的最大或者最小值的宏吧,弄起来倒不难。当然,并不排除之前有类似的补丁,年代久远是否就不清楚了。 :em01 :em01 :em01
另,提醒一下,你的问题跟这位仁兄的问题不一样,你这是未声明的宏,而那位仁兄是括号不匹配的问题。年代久远的老问题上游早就修复了,特定版本出现的特定问题我就不解释了。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
ggxxkkll
帖子: 8
注册时间: 2013-03-13 15:35
系统: win7

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#5

帖子 ggxxkkll » 2013-03-14 14:34

我在include/my_global.h 文件中添加了,如下代码:
/* Define some useful general macros */
-#if !defined(max)
-#define max(a, b) ((a) > (b) ? (a) : (b))
-#define min(a, b) ((a) < (b) ? (a) : (b))
+#if !defined(mysql_max)
+#define mysql_max(a, b) ((a) > (b) ? (a) : (b))
+#define mysql_min(a, b) ((a) < (b) ? (a) : (b))
+static __inline long min( long a, long b ) { return ( ( a < b ) ? a : b ); }
+static __inline long max( long a, long b ) { return ( ( a > b ) ? a : b ); }
#endif


再次编译, sudo make, 出现了如下错误:
In file included from strxmov.c:33:
../include/my_global.h:1528: error: expected identifier or ‘(’ before ‘long’
../include/my_global.h:1528: error: expected ‘)’ before ‘<’ token
../include/my_global.h:1529: error: expected identifier or ‘(’ before ‘long’
../include/my_global.h:1529: error: expected ‘)’ before ‘>’ token
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#6

帖子 YeLee » 2013-03-14 15:54

亲,能把include/my_global.h里面的1520到1535行贴在代码块里面么? :em06 :em06 :em06
当然,很多宏还是不要做太大变动为好,只是不明白是不是在Makefile之类的地方掺入什么,略过了那宏的定义条件,导致这边定义失败而已。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
ggxxkkll
帖子: 8
注册时间: 2013-03-13 15:35
系统: win7

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#7

帖子 ggxxkkll » 2013-03-14 22:18

YeLee 写了:亲,能把include/my_global.h里面的1520到1535行贴在代码块里面么? :em06 :em06 :em06
当然,很多宏还是不要做太大变动为好,只是不明白是不是在Makefile之类的地方掺入什么,略过了那宏的定义条件,导致这边定义失败而已。
下面
(1)首先是我对mysql-6.0.0-alpha源代码不做任何修改的情况下,编译结果。
sudo make

Making all in client
make[2]: Entering directory `/home/yugao/6.0/mysql-6.0.0-alpha/client'
if g++ -DUNDEF_THREADS_HACK -DDEFAULT_MYSQL_HOME="\"/home/yugao/Desktop/yugao/6.0/mysql\"" -DDATADIR="\"/home/yugao/Desktop/yugao/6.0/mysql/var\"" -I. -I. -I.. -I../include -I../include -I../regex -O3 -fno-implicit-templates -fno-exceptions -fno-rtti -MT mysql.o -MD -MP -MF ".deps/mysql.Tpo" -c -o mysql.o mysql.cc; \
then mv -f ".deps/mysql.Tpo" ".deps/mysql.Po"; else rm -f ".deps/mysql.Tpo"; exit 1; fi
mysql.cc: In function ‘void print_table_data(MYSQL_RES*)’:
mysql.cc:2355: error: ‘max’ was not declared in this scope
mysql.cc:2357: error: ‘max’ was not declared in this scope
mysql.cc:2378: error: ‘min’ was not declared in this scope
mysql.cc: In function ‘int com_edit(String*, char*)’:
mysql.cc:2849: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
make[2]: *** [mysql.o] Error 1
make[2]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha/client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha'
make: *** [all] Error 2

此时include/my_global.h 文件总共只有1518行代码。


make clean 后,在执行下面(2)

(2)
在include/my_global.h里面添加如下代码:

/* Define some useful general macros */
#if !defined(max)
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
#if !defined(mysql_max)
#define mysql_max(a, b) ((a) > (b) ? (a) : (b))
#define mysql_min(a, b) ((a) < (b) ? (a) : (b))
static __inline long min( long a, long b ) { return (((a) < (b )) ? (a) :( b)); }
static __inline long max( long a, long b ) { return (((a) > (b)) ?(a) : (b)); }
#endif

./configure .....(此处省略)
sudo make

make[3]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha/pstack'
make[2]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha/pstack'
Making all in strings
make[2]: Entering directory `/home/yugao/6.0/mysql-6.0.0-alpha/strings'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../include -O3 -MT strxmov.o -MD -MP -MF ".deps/strxmov.Tpo" -c -o strxmov.o strxmov.c; \
then mv -f ".deps/strxmov.Tpo" ".deps/strxmov.Po"; else rm -f ".deps/strxmov.Tpo"; exit 1; fi
In file included from strxmov.c:33:
../include/my_global.h:18:1: error: unterminated #ifndef
make[2]: *** [strxmov.o] Error 1
make[2]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha/strings'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha'
make: *** [all] Error 2


此时include/my_global.h 文件代码从1518到最后的代码是:

/* Define some useful general macros */
#if !defined(max)
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
#if !defined(mysql_max)
#define mysql_max(a, b) ((a) > (b) ? (a) : (b))
#define mysql_min(a, b) ((a) < (b) ? (a) : (b))
static __inline long min( long a, long b ) { return (((a) < (b)) ? (a) : (b)); }
static __inline long max( long a, long b ) { return (((a) > (b)) ? (a) : (b)); }
#endif

#endif /* my_global_h */


请问这是怎么回事了?? 如何解决,谢谢!!!
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#8

帖子 YeLee » 2013-03-14 23:28

代码: 全选

#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
好吧,其实我觉得最快捷的方式还是跳过一些复杂的条件之类的东西,直接加到文件头算了。 :em20 :em20 :em20
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
ggxxkkll
帖子: 8
注册时间: 2013-03-13 15:35
系统: win7

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#9

帖子 ggxxkkll » 2013-03-18 9:30

YeLee 写了:

代码: 全选

#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
好吧,其实我觉得最快捷的方式还是跳过一些复杂的条件之类的东西,直接加到文件头算了。 :em20 :em20 :em20

大哥,你能帮忙找到mysql-5.1.7.tar.gz , 或者mysql-5.1.9.tar.gz吗?
本人有急用,万分感谢!!!
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#10

帖子 YeLee » 2013-03-18 9:35

何苦要找那么旧的版本呢?又不是有特殊需求。 :em20 :em20 :em20
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
ggxxkkll
帖子: 8
注册时间: 2013-03-13 15:35
系统: win7

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#11

帖子 ggxxkkll » 2013-03-18 11:21

YeLee 写了:何苦要找那么旧的版本呢?又不是有特殊需求。 :em20 :em20 :em20
我就是因为有特殊需求!!!! :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?

#12

帖子 YeLee » 2013-03-18 20:51

我的眼睛虽然近视有点高,但十几pt的字体能看清,没必要要什么加粗加大。虽然能起到强调的作用,但同时也是一种对别人的不尊重。 :em01 :em01 :em01
表示mysql下载页的Archives页一直都提供旧版本的下载,不过,官方那边早就说明,旧版本存在着很多的bug,所以非常不稳定,用户假如是有使用需求的话,建议还是升级到current release版本,尤其是alpha版本存在着严重的安全缺陷,所以不再提供下载。而且子版本号之间都是相容的,上游不再提供新特性支持,我说到这里,你懂我的意思了吧。
当然,我依旧很好奇你所谓的特殊需求究竟是什么。假如真的要找的话,倒可以去某Archives网站找一些存档,手指动动,想也不是太难。不过也辛苦楼主了,为了求这两个文件还特地跑了那么多个论坛发帖,索引页上面也能找到楼主的ID了。有时候伸手太多了的话,都忘记自己还有手了。 :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
回复