mysql 静态链接_gcc编译 静态链接mysql库的问题

你的位置:

问答吧

-> C/C++

-> 问题详情

gcc编译 静态链接mysql库的问题

因我们的客户有的在用mysql5有的在用mysql4, 所以我想用静态编译一个程序来解决这个版本问题。

但是测试gcc -o xxx xxx.c /usr/lib/mysql/libmysqlclient.a -lssl -Wall

编译用的机器装的是mysql4, 之后丢另一台装mysql5机器上提示

libssl.so.4 => not found

libcrypto.so.4 => not found

那台机器上只有libssl.so.6 和libcrypto.so.6

问题

1。我怎么做才能保证我编译的调用mysql的程序在没安装mysql api或者安装了其他版本mysql的机器上也能运行?

2。我在机器上找不到libssl.so.4和libcrypto.so.4的静态库,在网上也没找到,请问要在哪下?

作者: 204tian

发布时间: 2011-06-28

1、没有安装mysql api不能运行吧,你得把libmysqlclient.a拷到机器上啊,还有头文件之类的也要。其他版本mysql的话,你只能解决兼容问题了。

2、我的机器上有这两个东西,你是啥机器啊。

作者: ecjtubaowp

发布时间: 2011-06-28

QUOTE:

1、没有安装mysql api不能运行吧,你得把libmysqlclient.a拷到机器上啊,还有头文件之类的也要。其他版本my ...

ecjtubaowp 发表于 2011-06-28 16:25

1.静态编译就是包含了libmysqlclient.a静态库啊,现在代码完全不用改,只是编译时库的问题

2.你机器上有那两个.a文件? 我的机器是redhat

作者: 204tian

发布时间: 2011-06-28

回复 204tian

不好意思,没看清。我的机器上是有这两个文件的,.a .so的都有,RHEL 5.2

作者: ecjtubaowp

发布时间: 2011-06-28

我搞定了,

我把libcrypto.so.4  libmysqlclient.so.14  libssl.so.4三个库丢在一个目录lib, 然后编译时用./lib/libmysqlclient.so.14 -Wl,-rpath,./lib/ 指定在这个目录链接动态库, 编译完后把这个目录一起给客户就可以了

作者: 204tian

发布时间: 2011-06-28

最后还是觉得动态编译比较好,反正都自带库文件了

作者: 204tian

发布时间: 2011-06-28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值