muduo库分为base和net两个模块。本文章主要讲解我们自己编写代码想引入Muduo的base库进行使用的技巧,net库同理。
Base模块的CMakeLists.txt
Cmake文件描述:将base_SRCS所涉及的.cc文件编译为libmuduo_base.a 的静态库。同时指定lib库的安装路径为==/usr/local/lib==,.h安装的路径为==/usr/local/include/muduo/base==
set(base_SRCS
AsyncLogging.cc
Condition.cc
CountDownLatch.cc
CurrentThread.cc
Date.cc
Exception.cc
FileUtil.cc
LogFile.cc
Logging.cc
LogStream.cc
ProcessInfo.cc
Timestamp.cc
Thread.cc
ThreadPool.cc
TimeZone.cc
)
add_library(muduo_base ${base_SRCS})
target_link_libraries(muduo_base pthread rt)
#add_library(muduo_base_cpp11 ${base_SRCS})
#target_link_libraries(muduo_base_cpp11 pthread rt)
#set_target_properties(muduo_base_cpp11 PROPERTIES COMPILE_FLAGS "-std=c++0x")
install(TARGETS muduo_base DESTINATION lib)
#install(TARGETS muduo_base_cpp11 DESTINATION lib)
file(GLOB HEADERS "*.h")
install(FILES ${HEADERS} DESTINATION include/muduo/base)
if(MUDUO_BUILD_EXAMPLES)
add_subdirectory(tests)
endif()
make install后
- .h文件的位置显示
-lib库的文件显示
base库引入
编写我们的main.cpp文件
#include <muduo/base/Date.h>
#include<iostream>
using muduo::Date;
int main(){
Date someDay(2008, 9, 10);
std::cout<<someDay.toIsoString()<<std::endl;
}
编写CMakeLists.txt文件
cmake_minimum_required(VERSION 3.0.0)
project(main VERSION 0.1.0)
include(CTest)
enable_testing()
include_directories("/usr/local/include")
link_directories("/usr/local/lib")
link_libraries("muduo_base")
add_executable(main main.cpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)