Linux:

0.CMake编译参数

  ENABLE_BOOST_CONTEXT  `这是在linux上性能最佳的编译参数`
  	libgo在Linux系统上默认使用ucontext做协程上下文切换,开启此选项将使用boost.context来替代ucontext.
  	使用方式:
  		$ cmake .. -DENABLE_BOOST_CONTEXT=ON

  ENABLE_BOOST_COROUTINE
  	libgo在Linux系统上默认使用ucontext做协程上下文切换,开启此选项将使用boost.coroutine来替代ucontext.
  	使用方式:
  		$ cmake .. -DENABLE_BOOST_COROUTINE=ON

  DISABLE_HOOK
  	禁止hook syscall,开启此选项后,网络io相关的syscall将恢复系统默认的行为,
  	协程中使用阻塞式网络io将可能真正阻塞线程,如无特殊需求请勿开启此选项.
  	使用方式:
  		$ cmake .. -DDISABLE_HOOK=ON
  		
  不开启ENABLE_BOOST_CONTEXT和ENABLE_BOOST_COROUTINE选项时, libgo不依赖boost库,可以直接使用,仅测试代码依赖boost库。

1.如果你安装了ucorf或libgonet,那么你已经使用默认的方式安装过libgo了,如果不想设置如上的选项,可以跳过第2步.

2.使用CMake进行编译安装:

  $ mkdir build
  $ cd build
  $ cmake ..
  $ sudo make install

如果希望编译可调试的版本, "cmake .." 命令执行完毕后执行:

  $ make debug
  $ sudo make install

执行单元测试代码:

  $ make test
  $ make run_test

生成性能网络测试代码:

  $ make bm

3.以动态链接的方式使用时,一定要最先链接liblibgo.so,还需要链接libdl.so. 例如:

  g++ -std=c++11 test.cpp -llibgo -ldl [-lother_libs]

4.以静态链接的方式使用时,只需链接liblibgo.a即可,不要求第一个被链接,但要求libc.a最后被链接. 要求安装GCC的静态链接库, debian系Linux安装gcc时已经自带, redhat系Linux需要从源中另行安装(yum install gcc-static) 例如:

  g++ -std=c++11 test.cpp -llibgo -static -static-libgcc -static-libstdc++