今天在学习muduo中的EventLoop类,代码如下:
#include <errno.h>
#include "muduo/net/EventLoop.h"
#include <thread>
int main()
{
muduo::net::EventLoop testloop;
testloop.loop();
return 0;
}
以一个案例做实验的时候出现了如下问题:
/root/build/release-install-cpp11/lib/libmuduo_net.a(Channel.cc.o): In function `muduo::net::Channel::~Channel()':
/root/muduo/muduo/base/CurrentThread.h:24: undefined reference to `muduo::CurrentThread::t_cachedTid'
/root/muduo/muduo/base/CurrentThread.h:26: undefined reference to `muduo::CurrentThread::cacheTid()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(Channel.cc.o): In function `muduo::net::Channel::handleEventWithGuard(muduo::Timestamp)':
/root/muduo/muduo/net/Channel.cc:86: undefined reference to `muduo::g_logLevel'
/root/muduo/muduo/net/Channel.cc:98: undefined reference to `muduo::Logger::Logger(muduo::Logger::SourceFile, int, muduo::Logger::LogLevel)'
/root/muduo/muduo/net/Channel.cc:98: undefined reference to `muduo::LogStream::operator<<(int)'
/root/muduo/muduo/net/Channel.cc:98: undefined reference to `muduo::Logger::~Logger()'
/root/muduo/muduo/net/Channel.cc:98: undefined reference to `muduo::Logger::~Logger()'
/root/muduo/muduo/net/Channel.cc:91: undefined reference to `muduo::Logger::Logger(muduo::Logger::SourceFile, int, muduo::Logger::LogLevel)'
/root/muduo/muduo/net/Channel.cc:91: undefined reference to `muduo::LogStream::operator<<(int)'
/root/muduo/muduo/net/Channel.cc:91: undefined reference to `muduo::Logger::~Logger()'
/root/muduo/muduo/net/Channel.cc:86: undefined reference to `muduo::Logger::Logger(muduo::Logger::SourceFile, int, muduo::Logger::LogLevel, char const*)'
/root/muduo/muduo/net/Channel.cc:86: undefined reference to `muduo::Logger::~Logger()'
/root/muduo/muduo/net/Channel.cc:98: undefined reference to `muduo::Logger::~Logger()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `muduo::net::EventLoop::handleRead()':
/root/muduo/muduo/net/EventLoop.cc:250: undefined reference to `muduo::Logger::Logger(muduo::Logger::SourceFile, int, muduo::Logger::LogLevel)'
/root/muduo/muduo/net/EventLoop.cc:250: undefined reference to `muduo::LogStream::operator<<(long)'
/root/muduo/muduo/net/EventLoop.cc:250: undefined reference to `muduo::Logger::~Logger()'
/root/muduo/muduo/net/EventLoop.cc:250: undefined reference to `muduo::Logger::~Logger()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `muduo::net::EventLoop::~EventLoop()':
/root/muduo/muduo/net/EventLoop.cc:95: undefined reference to `muduo::g_logLevel'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `tid':
/root/muduo/muduo/base/CurrentThread.h:24: undefined reference to `muduo::CurrentThread::t_cachedTid'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `muduo::net::EventLoop::~EventLoop()':
/root/muduo/muduo/net/EventLoop.cc:95: undefined reference to `muduo::Logger::Logger(muduo::Logger::SourceFile, int, muduo::Logger::LogLevel, char const*)'
/root/muduo/muduo/net/EventLoop.cc:95: undefined reference to `muduo::LogStream::operator<<(void const*)'
/root/muduo/muduo/net/EventLoop.cc:95: undefined reference to `muduo::LogStream::operator<<(int)'
/root/muduo/muduo/net/EventLoop.cc:96: undefined reference to `muduo::LogStream::operator<<(int)'
/root/muduo/muduo/net/EventLoop.cc:95: undefined reference to `muduo::Logger::~Logger()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `tid':
/root/muduo/muduo/base/CurrentThread.h:26: undefined reference to `muduo::CurrentThread::cacheTid()'
/root/muduo/muduo/base/CurrentThread.h:24: undefined reference to `muduo::CurrentThread::t_cachedTid'
/root/muduo/muduo/base/CurrentThread.h:26: undefined reference to `muduo::CurrentThread::cacheTid()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `muduo::net::EventLoop::runAfter(double, std::function<void ()>)':
/root/muduo/muduo/net/EventLoop.cc:186: undefined reference to `muduo::Timestamp::now()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `muduo::net::EventLoop::runEvery(double, std::function<void ()>)':
/root/muduo/muduo/net/EventLoop.cc:192: undefined reference to `muduo::Timestamp::now()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `tid':
/root/muduo/muduo/base/CurrentThread.h:24: undefined reference to `muduo::CurrentThread::t_cachedTid'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `muduo::net::EventLoop::abortNotInLoopThread()':
/root/muduo/muduo/net/EventLoop.cc:229: undefined reference to `muduo::Logger::Logger(muduo::Logger::SourceFile, int, muduo::Logger::LogLevel)'
/root/muduo/muduo/net/EventLoop.cc:229: undefined reference to `muduo::LogStream::operator<<(void const*)'
/root/muduo/muduo/net/EventLoop.cc:230: undefined reference to `muduo::LogStream::operator<<(int)'
/root/muduo/muduo/net/EventLoop.cc:231: undefined reference to `muduo::LogStream::operator<<(int)'
/root/muduo/muduo/net/EventLoop.cc:229: undefined reference to `muduo::Logger::~Logger()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `tid':
/root/muduo/muduo/base/CurrentThread.h:26: undefined reference to `muduo::CurrentThread::cacheTid()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `muduo::net::EventLoop::abortNotInLoopThread()':
/root/muduo/muduo/net/EventLoop.cc:229: undefined reference to `muduo::Logger::~Logger()'
/root/build/release-install-cpp11/lib/libmuduo_net.a(EventLoop.cc.o): In function `tid':
/root/muduo/muduo/base/CurrentThread.h:24: undefined reference to `muduo::CurrentThread::t_cachedTid'
/root/muduo/muduo/base/CurrentThread.h:26: undefined reference to `muduo::CurrentThread::cacheTid()'
/root/muduo/muduo/base/Cur