您的位置:首页 > 运维架构 > Linux

LinuxC/C++编程基础(7) boost::mutex的简单实例

2012-11-25 14:07 796 查看
一.main.cpp函数的实现,如下:

#include <iostream>

#include <boost/thread/mutex.hpp>

template<typename T>

class Counter:public boost::noncopyable{

private:

T t;

boost::mutex mu;

public:

Counter(T _t = T()):t(_t){}

T operator++(){

boost::mutex::scoped_lock lock(mu);

return ++t;

}

operator T(){

std::cout<<"inside T()"<<std::endl;

return t;

}

};

int main(int argc,char** argv){

typedef Counter<int> count_int;

count_int x(9);

std::cout<<++x<<std::endl;

return 0;

}

转载请注明出处:山水间博客:/article/2317640.html

二.makefile文件的编写,如下:

SRC = $(wildcard \

./*.cpp \

)

CC = g++

REFLAGS = -O2 -g

EXEC = ./bin/main

CFLAGS = -I/usr/local/include

LDFLAGS = -L./lib "-Wl,-rpath,./lib"

LIBS = -lboost_thread -lpthread -lrt -ldl

REL_OBJS = $(SRC:%.cpp=%.o)

rel:$(REL_OBJS)

$(CC) $(RELFLAGS) $(LDFLAGS) $^ $(LIBS) -o $(EXEC)

%.o:%.cpp

$(CC) -c $(RELFLAGS) $(CFLAGS) $< -o $@

clean:

rm -f $(REL_OBJS) $(EXEC)

.PHONY:rel

三.可能会出现的问题,如下:

undefined reference to `boost::thread_resource_error::thread_resource_error()'

说明:该问题其实很好解决,当然也得看具体情况,这里略去。

参考文献:boost库完全开发指南,罗剑锋 著

转载请注明出处:山水间博客:/article/2317640.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: