- 主题:The MYSQL library not found :-(
哎,你知不知道把 -lmysqlclient 放在源文件后面和放在源文件前面有什么区别呀?@@
【 在 nbysy (孩子他爸) 的大作中提到: 】
: 标 题: Re: The MYSQL library not found :-(
: 发信站: 水木社区 (Sun Jul 24 21:44:58 2005), 转信
:
: 没想法了.
:
: 【 在 fancitron (Albatross) 的大作中提到: 】
: : 这个选项可能没有问题,不过后来我手工编译了一下,有另外的奇怪问题,结果最后发现
: : 必须把 -lmysqlclient 放在源文件 testmysql.c 的后面才能连接 @@
:
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 60.178.69.*]
--
FROM 59.66.199.*
不知,估计是FreeBSD 一项feature吧
【 在 fencitron (Albatross) 的大作中提到: 】
: 哎,你知不知道把 -lmysqlclient 放在源文件后面和放在源文件前面有什么区别呀?@@
--
FROM 60.178.69.*
哎呀,足足折腾了一天,终于搞定了这个问题。。。
在 smthbbs 的 configure 里面的 17829 行(这个是我的configure里的行号):
原本是:
LIBS="-lmysqlclient -L$MYSQL_DIR/lib $LIBS"
要改成:
LIBS="-lmysqlclient -lz -lm -L$MYSQL_DIR/lib $LIBS"
这可能是因为我的虚拟机里的freebsd环境装的不是很好,以至于没有默认连接 -lm @@
不过更好的检测mysql的方法可能是采用 mysql 目录里面 mysql_config 脚本产生的
输出作为连接的命令行。我那个freebsd里面的执行结果是:
# /usr/local/mysql/bin/mysql_config --libs
-L/usr/local/mysql/lib -lmysqlclient -lz -lcrypt -lm
而在另一个 rh linux 环境里执行该脚本的输出则是:
-L/usr/local/mysql/lib -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
不管怎么说,总算把这个恼人的问题解决了 -,-
【 在 fancitron (Albatross) 的大作中提到: 】
: @@ 刚才又研究了一下gcc的man,发觉有这样一段话:
: -llibrary
: Search the library named library when linking.
: ...................
--
修改:fancitron FROM 59.66.199.*
FROM 59.66.199.*
I see
牛人呐
gcc 先把 *.c 编译成 *.o
再将 *.o 交给 linker 链接.
不过 gcc 指定lib 时的这一 feature 也太没人道了.
【 在 fancitron (Albatross) 的大作中提到: 】
: @@ 刚才又研究了一下gcc的man,发觉有这样一段话:
: -llibrary
: Search the library named library when linking.
: ...................
--
FROM 60.178.69.*
应该有它的道理吧,但是被他害苦啦,~~~~~>.<~~~~~
不过这是否就意味着如果两个库互相引用对方的symbol的话,就需要 -l 两次?@@
真是复杂。。。-,-
【 在 nbysy (孩子他爸) 的大作中提到: 】
: 标 题: Re: The MYSQL library not found :-(
: 发信站: 水木社区 (Sun Jul 24 22:50:50 2005), 转信
:
: I see
: 牛人呐
:
: gcc 先把 *.c 编译成 *.o
:
: 再将 *.o 交给 linker 链接.
:
: 不过 gcc 指定lib 时的这一 feature 也太没人道了.
:
: 【 在 fancitron (Albatross) 的大作中提到: 】
: : @@ 刚才又研究了一下gcc的man,发觉有这样一段话:
: : -llibrary
: : Search the library named library when linking.
: : ...................
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 60.178.69.*]
--
FROM 59.66.199.*
其实问题在于是你手动安装的 mysql,如果你用 ports 方式安装 mysql,
就一点问题都没有...
【 在 fancitron (Albatross) 的大作中提到: 】
: 哎呀,足足折腾了一天,终于搞定了这个问题。。。
: 在 smthbbs 的 configure 里面的 17829 行(这个是我的configure里的行号):
: 原本是:
: ...................
--
FROM 162.105.242.*
ylrc 啊... 唉唉,昨天刚装了虚拟机和freebsd,不会ports >_<
而且以前在 rh linux 下面一直是直接解压缩 mysql binary 的,都用得好好的,
所以就没想到还会出问题..... >_<
【 在 flyriver (江~~忙碌生活) 的大作中提到: 】
: 其实问题在于是你手动安装的 mysql,如果你用 ports 方式安装 mysql,
: 就一点问题都没有...
--
FROM 59.66.199.*
库没关系吧,主要是 .o 文件一定要放 lib 前面.
【 在 fancitron (Albatross) 的大作中提到: 】
: 应该有它的道理吧,但是被他害苦啦,~~~~~>.<~~~~~
: 不过这是否就意味着如果两个库互相引用对方的symbol的话,就需要 -l 两次?@@
: 真是复杂。。。-,-
: ...................
--
FROM 60.178.69.*
对对,看来是这样的,嗯。
【 在 nbysy (孩子他爸) 的大作中提到: 】
: 库没关系吧,主要是 .o 文件一定要放 lib 前面.
--
FROM 59.66.199.*