当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-13 15:58 

注册: 2013-03-13 15:35
帖子: 8
系统: win7
送出感谢: 0 次
接收感谢: 0 次
本人在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


请教高手,以上错误该如何解决?
万分感谢!!!!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-14 9:16 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
嗯,很好。 :em09 :em09 :em09


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


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-14 9:40 

注册: 2013-03-13 15:35
帖子: 8
系统: win7
送出感谢: 0 次
接收感谢: 0 次
YeLee 写道:
嗯,很好。 :em09 :em09 :em09



什么意思,帮忙解决问题啊!!!


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-14 12:49 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
这也就是为什么采用特定版本的软件会在不同版本的gcc中会编译失败的原因了,倒是可以自己写个补丁,打进去。看那错误,应该是一个返回两个数中的最大或者最小值的宏吧,弄起来倒不难。当然,并不排除之前有类似的补丁,年代久远是否就不清楚了。 :em01 :em01 :em01
另,提醒一下,你的问题跟这位仁兄的问题不一样,你这是未声明的宏,而那位仁兄是括号不匹配的问题。年代久远的老问题上游早就修复了,特定版本出现的特定问题我就不解释了。


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


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-14 14:34 

注册: 2013-03-13 15:35
帖子: 8
系统: win7
送出感谢: 0 次
接收感谢: 0 次
我在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


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-14 15:54 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
亲,能把include/my_global.h里面的1520到1535行贴在代码块里面么? :em06 :em06 :em06
当然,很多宏还是不要做太大变动为好,只是不明白是不是在Makefile之类的地方掺入什么,略过了那宏的定义条件,导致这边定义失败而已。


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


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-14 22:18 

注册: 2013-03-13 15:35
帖子: 8
系统: win7
送出感谢: 0 次
接收感谢: 0 次
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 */


请问这是怎么回事了?? 如何解决,谢谢!!!


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-14 23:28 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
代码:
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))

好吧,其实我觉得最快捷的方式还是跳过一些复杂的条件之类的东西,直接加到文件头算了。 :em20 :em20 :em20


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


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-18 9:30 

注册: 2013-03-13 15:35
帖子: 8
系统: win7
送出感谢: 0 次
接收感谢: 0 次
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吗?
本人有急用,万分感谢!!!


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-18 9:35 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
何苦要找那么旧的版本呢?又不是有特殊需求。 :em20 :em20 :em20


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


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-18 11:21 

注册: 2013-03-13 15:35
帖子: 8
系统: win7
送出感谢: 0 次
接收感谢: 0 次
YeLee 写道:
何苦要找那么旧的版本呢?又不是有特殊需求。 :em20 :em20 :em20


我就是因为有特殊需求!!!! :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20 :em20


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 急求帮助: Ubuntu10.04 编译安装mysql-6.0.0-alpha 源代码问题?
帖子发表于 : 2013-03-18 20:51 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
我的眼睛虽然近视有点高,但十几pt的字体能看清,没必要要什么加粗加大。虽然能起到强调的作用,但同时也是一种对别人的不尊重。 :em01 :em01 :em01
表示mysql下载页的Archives页一直都提供旧版本的下载,不过,官方那边早就说明,旧版本存在着很多的bug,所以非常不稳定,用户假如是有使用需求的话,建议还是升级到current release版本,尤其是alpha版本存在着严重的安全缺陷,所以不再提供下载。而且子版本号之间都是相容的,上游不再提供新特性支持,我说到这里,你懂我的意思了吧。
当然,我依旧很好奇你所谓的特殊需求究竟是什么。假如真的要找的话,倒可以去某Archives网站找一些存档,手指动动,想也不是太难。不过也辛苦楼主了,为了求这两个文件还特地跑了那么多个论坛发帖,索引页上面也能找到楼主的ID了。有时候伸手太多了的话,都忘记自己还有手了。 :em01 :em01 :em01


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


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译