文章说明
本次文章介绍创建两个目录,分别为动态链接库类目录(LogLib )和调用动态链接库代码目录(TestLog),由于TestLog下代码调用LogLib生成的动态链接库。通过cmake分别在ubuntu20.04和windows10下来编译本次要求。
总体目录结构如下:

LogLib
目录结构如下:
XLog.h
cpp
#ifndef XLOG_H
#define XLOG_H
#include <iostream>
#if _WIN32 // windows
class __declspec(dllexport) XLog
#else // linux
class XLog
#endif
{
public:
XLog();
};
#endif
XLog.cpp
cpp
#include "XLog.h"
XLog::XLog()
{
std::cout << "welcome XLog ..." << std::endl;
}
TestLog
目录结构如下:
main.cpp
cpp
#include <iostream>
#include "XLog.h"
int main()
{
XLog log;
std::cout << "------- end -------" << std::endl;
return 0;
}
CMakeLists.txt
cpp
# 将LogLib工程编译输出动态链接库
# TestLog工程输出为exe。它将调用LogLib输出的库
# 最低版本支持
cmake_minimum_required(VERSION 3.16)
# 工程名称
project(TestLog)
# 工程包含库的头文件路径
include_directories("./LogLib")
# 构建编译输出的库(库名称 动态库(静态库填STATIC) 库工程下文件名,.h可不用写)
add_library(LogLib SHARED ./LogLib/XLog.cpp)
# 构建执行程序(项目名称 工程下文件名,.h可不用写)
add_executable(TestLog TestLog/main.cpp)
# 工程需要连接的库名
target_link_libraries(TestLog LogLib)
Linux-Ubuntu20.04下编译

Windows下编译

关注
笔者 - jxd