如题,刚接触CLion,要编译一个小项目,需要引入外部的头文件和静态库.lib,奈何查了半天发现MinGW64不支持.lib库,只能用.a或者.dll,因此准备添加个VS2022编译器备用...
选择自定义-所有设置,即可打开设置页面

选择 构建、执行、部署 - 工具链 ,点左上角的加号新增编译器,选择Visual studio,然后指定电脑内安装的路径(2022社区版要选到...Microsoft Visual Studio2022Community),其他选项默认即可,点击应用

在前面的界面下,点击左侧CMake,点击左上角加号添加配置文件,添加后默认会显示为Release,手动重命名并将构建类型更换为Debug,将工具链修改为Visual Studio(也可以将下面MinGW也重命名一下便于辨认),然后点击确定即可。

新建一个c++可执行文件,指定存放位置后点击创建

打开工程后,可以看到左侧工程列表内多了一个配置文件,并且可以手动在右上角切换Debug配置文件,这里默认设置为VS2022为默认配置,点右上角的运行按钮即可编译运行工程

简单记录一下用CLion编译C++动态链接库时引入外部静态库遇到的问题,查了很久的cMakeList.txt文件用法,终于把外部的头文件和静态库.lib一起编译了进来...(刚接触CLion,MinGW用不惯,给换成了VS2022编译器环境)
选择C++库,指定位置后,库类型设置为shared(本次演示使用动态链接库而非静态库),点击创建工程

示例代码:
library.cpp
#include <iostream>
#include "plugin.h"
#include <unordered_map>
cspLogger logger("eoe");
void func(std::unordered_map<std::string, std::string> data){
std::cout<<"data-size:"<<data.size()<<std::endl;
}
void PluginInit(){
std::cout<<"test_plugin loaded!"<<std::endl;
logger.info("test_plugin loaded!");
SetListener(EventCode::onServerStart,func);
}代码部分为某项目半成品,无参考价值,仅示例
手动将目标SDK文件夹中的head、lib文件夹放到项目根目录

主要修改:5-7行
cmake_minimum_required(VERSION 3.22)
project(test_1)
set(CMAKE_CXX_STANDARD 14)
include_directories("Head")#引入外部头文件路径
link_directories("Lib")#引入外部依赖库路径
link_libraries(a)#引入依赖文件名
add_library(test_1 SHARED library.cpp)
点击上方构建,选择第三个构建当前工程,待显示构建 已完成,即可在对应配置目录内找到构建成功的的动态数据库,本项目生成文件为test_1.dll,可用于给其他项目加载。
