C开发者如何使用Swoole

swoole使用cmake来做编译配置,示例程序在examples/server.c中。 您可以在此基础上进行代码开发。 如果需要修改编译细节的选项,请直接修改CMakeLists.txt

生成config.h

swoole依赖phpizeconfigure检测系统环境,生成config.h

cd swoole-src/
phpize
./configure

执行成功后swoole-src目录下会有config.h

Build & Install

cmake .
make
make install
  • cmake命令可以增加cmake . -DCMAKE_INSTALL_PREFIX=/opt/swoole参数指定安装的路径
  • make命令可以使用 make DESTDIR=/opt/swoole install参数指定安装的路径

安装路径非系统默认的lib目录时,需要配置ld.so.conf将swoole动态连接库所在的目录添加到link路径中。

#需要root权限
echo "/opt/swoole/lib" >> /etc/ld.so.conf
#或者
echo "/opt/swoole/lib" > /etc/ld.so.conf.d/swoole.conf
#更新动态连接库信息
ldconfig

Example

示例代码:examples/server.c 在C代码中只需要引入swoole头即可。

#include <swoole/Server.h>
#include <swoole/Client.h>

int main() 
{
    swServer serv;
    swServer_create(&serv);
    serv.onStart = my_onStart;
    ...
    swServer_start(&serv);
}

编译运行

gcc -o server server.c -lswoole
./server

  • 求助

    gcc -o server server.c -lswoole

    /usr/bin/ld: cannot find -lswoole

    我设置了路径,仍然不行 export LDFLAGS=~/php56/swoole-src-swoole-1.7.8-stable/.libs export LDFLAGS=~/php56/swoole-src-swoole-1.7.8-stable/.libs

  • 小神灯侠

    centos 下 cp /usr/local/lib/libswoole.so.1.7.10 /usr/lib64/libswoole.so.1.7.10

    版本对应

  • 大熊

    C/C++版本官方不再支持,仅用于swoole开发组内部测试使用 这意思是不能用swoole进行C/C++的开发吗?

  • AAl

    make时/usr/bin/ld: cannot find -lnghttp2

  • Rango-韩天峰

    请安装nghttp2库,或者修改CMakeList.txt去掉nghttp2

  • xhc

    在macOS下编译有问题?