向东博客 专注WEB应用 构架之美 --- 构架 www.justwinit.cn

向东博客 专注WEB应用 构架之美 --- 构架

站名: 向东博客 专注WEB应用 构架之美 --- 构架

网址: http://www.justwinit.cn

目录: 电脑网络 > 手机通信

PR:

Alexa: 112,195

备案号: 京ICP备14028286号

服务器IP: 101.200.228.135   北京市海淀区 北龙中网(北京)科技有限责任公司

描述: 向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 - 赢在IT,Playi

查询: [ 网站综合查询 | PR查询 | Alexa排名 | 同IP网站 ]

详细介绍

向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除|赢在IT,Playin' with IT,Focus on Killer Application,Marketing Meets Technology.首页Write边栏分页: 1/238 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [ 显示模式: 摘要 | 列表 ][置顶] [实践ok]CentOS 7 使用阿里云的yum源WEB2.0 » Unix&Linux技术 justwinit 2016-8-29 19:35引用地址: 注意: 该地址仅在今日23:59:59之前有效1. 备份原来的yum源sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak2.设置aliyun的yum源sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo3.添加EPEL源EPEL(http://fedoraproject.org/wiki/EPEL)是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上 EPEL后,可以像在 Fedora 上一样,可以通过 yum install package-name,安装更多软件。sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo4.清理缓存并生成新的缓存sudo yum clean allsudo yum makecache
Last login: Mon Aug 29 19:24:29 2016 from 117.136.0.181
dns得设置一下,记得前面有个nameserver后是空格再是ip:
[root@iZ25dcp92ckZ ~]# cat /etc/resolv.conf
nameserver 114.114.114.114
[root@iZ25dcp92ckZ ~]#
来自:http://m.blog.csdn.net/article/details?id=51953700
[置顶] [实践Ok]memcache的静态编译lib库在makefile里的引用及h头文件动态指向(编译时用到),对Linux下的Makefile在实践中得以重新认识的记录备案~静态编译问题之warning: Using 'getaddrinfo' in statically linked ...
WEB2.0 » Unix&Linux技术 justwinit 2015-4-23 16:39
引用地址:
注意: 该地址仅在今日23:59:59之前有效
背景:其实之前没有研究过c的静态编译,包括对Linux下的make依赖啥的也不太懂,于是试着用c的头文件组织文件相互调用同时,觉得把生成的项目做成一个静态链接版本可执行文件,以便于在各种啥都不装的linux平台上运行(One file ,run as server ok的个人理想主义思想。),有点像像山寨嵌入式开发。我想简单,链接参数加一个-static不就行了,但接下来解决一系列问题的时间远远超出我的意料linux 静态链接 mysql glibc 库的悲催过程,边学习边扯淡,边记录,最后还是硬给扯到最后一步了给glibc的dlopen给挡住了,我看网上也有兄弟遇到类似的,但都最后妥协成动态编译这个glibc,加上参数:-ldl,我是学习实践,所以就不用了,但记录一下总是好事情。
一)关于Makefile的三个特点:
multipepollserver:multipepollserver.o memcachedclient.o writeFile.o memorypool.o readconf.o multipepollserver.h readconf.h memorypool.h readconf.h memcachedclient.h
/usr/bin/gcc44 -Wall -O0 -g -o multipepollserver multipepollserver.o memorypool.o readconf.o writeFile.o -lrt -lpthread -lmemcached
(1)把上面这个后面的.h去了也能编译过,那这些.h在Makefile里是不是没有用?
回答:.h用于符号链接 ,如果不包进去在运行的时候,或动态库加载时会产生符号表找不到。去掉是没问题,我也没加头文件。加上头文件依赖,修改头文件后,也会引起重新编译。
(2)memcachedClientGet找不到,在代码里都包含了,但是make时说找不到。
你也要依赖memcachedclient.o呀,你的实现在这里面,你不加进去,当然找不到。(这儿是核心:就是上面第二行,说找不到:也就是说第二行才是真正编译时的参数,第一行,主要是以来之用,没有第一行的.o,那么,后面写的这些.oMakefile规则是不会去编译的,所以也得写上涉及到的.o。)
是的,如下,居然说找不到这个函数:
vi multipepollserver.h
#include "memcachedclient.h"
这个我有包含的呀,
vim memcachedclient.c
#include "memcachedclient.h"
ls memcachedclient.h
memcachedclient.h
cat memcachedclient.c|grep memcachedClientGet
int memcachedClientGet(char *getKey,char *value){
二)关于静态编译:
问:如何把memcached由动态编译变为静态编译:
答:把 -lmemcached 改成 /.../libmemcached.a
它不是.a,是.la,要.a的,.la为libtool自动生成的一些共享库,可以用vi编辑查看,主要记录了一些配置信息。
它为何不在:/usr/local/libmemcached/下面,而是在,为何不放一块儿?
出现:undefined reference to `sasl_done'
版本对不对??
估计这些接口是在新版本中新定义的,你链接的可能是旧版本。
我对memcached没研究,不清楚。
静态库版本估计看不出,除非它源代码里有版本信息的字符串,可以抓一抓。
你可以执行
strings libmemc

猜你喜欢