源码:Linux高性能服务器编程(游双):第十五章:用线程池实现的简单Web服务器源码
共五个文件:threadpool.h,locekr.h,http_conn.h,http_conn.cpp,server.cpp
遇见的问题:
1、/usr/bin/ld: server.cpp:(.text+0x49c): undefined reference to `http_conn::m_epollfd'
原因:m_epollfd为类http_conn中的静态变量,虽然可以在未定义类的对象之前就直接使用,但是需要在使用之前在类外部提供实际的定义。我在http_conn.h声明了该静态变量,并在http_conn.cpp对改变了进行定义,但是我直接使用g++ server.cpp命令,这样链接器无法找到http_conn.cpp文件,也就无法找到静态变量m_epollfd的定义,就会出现undefined reference错误
解决方法:g++ http_conn.cpp server.cpp。