Waiting~G

一起走过的日子

Archive for the ‘学.Linux’ Category

XAMPP安装后,出现php startup:unable to load dynamic…问题

without comments

-window下安装XAMPP这个软件,一直以来貌似都没有什么问题;直接一键化安装了就能正常使用;这次我却吃了好大的苦头;晚上10点开始,到凌晨3点,卸载安装了无数次,环境变量配置了无所次,apache能启动了;(开始apache不能启动是因为之前电脑安装过WAMPServer,结果用不了;导致系统没有卸载完全,apache启动的时候默认去寻找老的目录,解决的措施是直接在服务里面去清除掉apache服务,或者直接通过cmd 使用sc delete Apache-2.4删除);但是在安装composer的时候去寻找php;结果一直报错依赖找不到;直接在cmd中使用php一下;结果报错是一样的;在百度上搜索了N久;都是两个解决方案;第一添加环境变量,把php文件下ext目录也加入环境变量;第二个是把ext以来都考入到system32里面去;都试了,然卵用;没办法了….

最后无语的还原一切,其实这都不是我们的错;是xampp的一个安装bug;安装的时候,默认目录只能是”c:\\xampp或者x盘符:\\xampp”目录;其他目录一路不对;在安装的时候就会报错没有”-n”文件….

这次算是弄得我很蛋筒,弄完后,想了一下,百度上貌似还没有这样的文章,自己还是写一下;分享一下;以免浪费更多时间在工具安装上;因为工具本事只是辅助….

 

Written by Skyma

四月 9th, 2016 at 7:45 上午

Posted in 学.Linux

C++中万能makefile编写

without comments

Makefile中只要把INCLUDE 和LIBS填写好就好;其他的都是万能的;INCLUDE 和LIBS如何填写呢?

其实很简单,INCLUDE 这里填写的是.c文件编译到.o文件过程需要的头文件;LIBS这里填写的是.o到可执行文件过程中需要的依赖动态连接文件

CC = gcc
CXX = g++
CFLAGS = -g -Wall
WBL_PATH = /usr/local/mysql/lib

INCLUDE = profile.pb.cc $(WBL_PATH )/libmysqlclient.a -I/usr/local/mysql-5.0.81-linux-x86_64-glibc23/include

#############################################

# 自动计算文件的依赖性

.%.d: %.cpp
$(CC) $(INCLUDE) -MM $< > $@
@$(CC) $(INCLUDE) -MM $< | sed s/”^”/”\.”/ | sed s/”^\. “/” “/ | \
sed s/”\.o”/”\.d”/ >> $@
%.o: %.cpp
$(CXX) $(CFLAGS) $(INCLUDE) -c $<

.%.d: %.c
$(CC) $(INCLUDE) -MM $< > $@
@$(CC) $(INCLUDE) -MM $< | sed s/”^”/”\.”/ | sed s/”^\. “/” “/ | \
sed s/”\.o”/”\.d”/ >> $@
%.o: %.c
$(CC) $(CFLAGS) $(INCLUDE) -c $<

##############################
EXE_C_TEST=./C_TEST
all : $(EXE_C_TEST)

LIBS:=profile.pb.cc $(WBL_PATH )/libmysqlclient.a -lcppclient -pthread -lrt -lz -lprotobuf

OBJS_C_TEST:=C_TEST.o
DEPS = $(patsubst %.o, .%.d, $(OBJS_MAIN) )
#####################################################################################

$(EXE_C_TEST): $(OBJS_C_TEST)
$(CXX) $(CFLAGS) -o $@ $^ $(LIBS)

install:
echo “install. do nothing…”

clean:
rm -vf *.o .*.d $(EXE_C_TEST)

-include $(DEPS)

Written by Skyma

十一月 26th, 2014 at 12:53 下午

Posted in 学.Linux

C++ PB协议使用

without comments

==========================================
首先看一下下面的pb协议文件,安装protobuffer后进行编译
==========================================
package profiledata;
message  ClomnValue{
required  bytes  qualifier = 1;  // qualifier name
required  bytes  value = 2;  // value
}
message Request{
optional string tbname = 1;      // table name
repeated bytes rowkey = 5;  //row key
repeated ClomnValue filter = 10;   // match column value
enum Operator{
MUST_PASS_ALL=0; // and
MUST_PASS_ONE=1; // or
}
optional  Operator operator = 11; // default MUST_PASS_ALL
optional int32 limit = 12;      // get rows count ,when scan table
}
message  Value{
required  bytes  qualifier = 1;  // qualifier name
optional  fixed64  timestamp = 2;  // timestamp
optional  bytes  value = 3;  // value
}
message  Row{
required  bytes  rowkey = 1;     // row key
repeated  Value  values = 2;     // all values
}
message  Response{
required int32  returnType = 1;   // return code
optional string returnDesc = 2;  //
repeated  Row   result = 4;      //
}

Read the rest of this entry »

Written by Skyma

十一月 26th, 2014 at 12:45 下午

Posted in 学.Linux

C++中对字符串处理的几个封装函数

without comments

1、//去掉字符串左右的空格

string& trim(string &s)
{
if (s.empty())
{
return s;
}
s.erase(0,s.find_first_not_of(” “));
s.erase(s.find_last_not_of(” “) + 1);
return s;
}

2、//字符串分割函数

std::vector<std::string> split(std::string str,std::string pattern)
{
std::string::size_type pos;
std::vector<std::string> result;
str+=pattern;//扩展字符串以方便操作
int size=str.size();

for(int i=0; i<size; i++)
{
pos=str.find(pattern,i);
if(pos<size)
{
std::string s=str.substr(i,pos-i);
result.push_back(s);
i=pos+pattern.size()-1;
}
}
return result;
}

Read the rest of this entry »

Written by Skyma

十一月 26th, 2014 at 12:31 下午

Posted in 学.Linux