clion c++ 打包成 dll
时间: 2025-07-06 16:58:34 浏览: 1
### 使用 CLion 将 C++ 项目打包成 DLL 文件
为了将 C++ 项目打包成动态链接库 (DLL),可以遵循以下设置和配置:
#### 配置 CMakeLists.txt 文件
创建或编辑项目的 `CMakeLists.txt` 文件来指定生成共享库。对于 Windows 平台上的 DLL 创建,确保指定了适当的属性以便正确导出符号。
```cmake
cmake_minimum_required(VERSION 3.10)
project(MyDynamicLibrary LANGUAGES CXX)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) # 导出所有符号用于Windows平台
add_library(mydll SHARED src/mylib.cpp)
target_include_directories(mydll PUBLIC ${PROJECT_SOURCE_DIR}/include)
```
此脚本定义了一个名为 `mydll` 的共享库,并设置了公共头文件目录[^3]。
#### 设置源码中的导出宏
为了让函数可以从 DLL 中被外部访问,在声明这些函数时需加上特定修饰符。通常做法是在头文件中定义一个宏来进行条件编译处理。
```cpp
// include/mylib.h
#pragma once
#ifdef MYLIB_BUILDING_DLL // 当构建DLL本身时定义这个宏
#define MYLIB_API __declspec(dllexport)
#else
#define MYLIB_API __declspec(dllimport)
#endif
extern "C" {
MYLIB_API int add(int a, int b);
}
```
对应的实现部分保持不变即可。
#### 编写简单的测试程序验证 DLL 功能
编写另一个可执行目标用来加载并调用上述 DLL 提供的功能作为测试用途。
```cmake
# 添加到之前的CMakeLists.txt结尾处
add_executable(test_dll main.cpp)
target_link_libraries(test_dll PRIVATE mydll)
```
以及相应的主函数代码如下所示:
```cpp
#include <iostream>
#include "mylib.h"
int main() {
std::cout << "Result from dll: " << add(2, 3) << "\n";
return 0;
}
```
完成以上步骤之后就可以在 CLion 下正常开发、调试和运行基于 DLL 构建的工程了[^2]。
阅读全文
相关推荐
















