asio_kcp服务器选用和参考的一些库

2018-06-04  本文已影响0人  口袋村的大猫

运行环境:Mac
服务器:asio_kcp
编译直接执行主目录下的allmake.sh文件,不过编译前需要安装一些依赖库。
依赖库:

$ ./bootstrap.sh
#服务器引用的mt库,需要指定下编译多线程库
$ sudo ./b2 --layout=tagged threading=multi install
$ sudo brew install autoconf automake libtool curl make g++ unzip
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ patch -p1 < MacOSX.diff
然后修改muduo/CMakeLists.txt文件
CXX_FLAGS中添加下面两行:
-D__GXX_EXPERIMENTAL_CXX0X__
-std=c++11
注释掉 -march=native
注释掉 -Werror
注释掉 set(CMAKE_CXX_COMPILER "clang++")
然后在muduo目录下执行:
$ CC=gcc CXX=g++ BUILD_DIR=./build BUILD_TYPE=release BUILD_NO_EXAMPLES=1 . ./build.sh
编译完成

可选库:

$ make static dynamic cryptest.exe

有个比较方便的管道Pipelining模式,所有新建的对象会传递到上级filter,然后由其负责销毁。比如MD5编码可以参考如下写法:

    // Memory malloc/free detail see: https://www.cryptopp.com/wiki/Pipelining
    static std::string EncodeMD5(const std::string &strIn)
    {
        std::string digest;
        CryptoPP::Weak::MD5 md5;
        CryptoPP::StringSource(strIn, true,
            new CryptoPP::HashFilter(md5,
                new CryptoPP::HexEncoder(
                    new CryptoPP::StringSink(digest), false)));

        return digest;
    }
上一篇 下一篇

猜你喜欢

热点阅读