You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并头文件生成DLL?基于Dev C++ GCC编译器的技术问询

基于GCC(Dev C++)创建带配套头文件的DLL指南

raylib的分发形式属于Windows下DLL的标准实现方式

DLL本身仅包含运行时执行逻辑,编译阶段需要的函数声明、常量定义、结构体等信息都存在对应头文件中,链接阶段需要匹配的导入库(MinGW下为.a后缀,部分库支持直接通过DLL完成链接),运行时DLL需要和可执行文件同目录或放在系统PATH路径下,raylib的分发逻辑完全符合这套标准流程。

Dev C++(GCC)下创建带配套头文件的DLL完整步骤

第一步:编写DLL源码和对外头文件

以最简单的自定义计算库为例:
首先编写对外提供的头文件mycalc.h:

#ifndef MYCALC_H
#define MYCALC_H

// 宏区分编译DLL和调用DLL的场景
#ifdef COMPILE_MY_CALC
#define CALC_API __declspec(dllexport)
#else
#define CALC_API __declspec(dllimport)
#endif

// 导出函数声明
CALC_API int add(int a, int b);
CALC_API int get_max(int arr[], int len);

#endif

再编写DLL实现文件mycalc.c:

#define COMPILE_MY_CALC // 编译DLL时优先定义此宏,标记函数为导出状态
#include "mycalc.h"

int add(int a, int b) {
    return a + b;
}

int get_max(int arr[], int len) {
    int max = arr[0];
    for (int i = 1; i < len; i++) {
        if (arr[i] > max) max = arr[i];
    }
    return max;
}

第二步:编译生成DLL和配套文件

  1. 打开Dev C++,新建项目选择「DLL」,语言选择C
  2. 将上面的mycalc.h和mycalc.c添加到项目中
  3. 执行编译,输出目录会生成两个核心文件:
    • libmycalc.a:MinGW GCC专用导入库,编译调用项目时需要
    • mycalc.dll:运行时必需的动态库
  4. 单独保存mycalc.h,这是后续给调用方提供的头文件

第三步:调用DLL的流程和使用raylib完全一致

  1. 新建普通控制台测试项目
  2. 将mycalc.h放到测试项目目录,或在Dev C++项目属性-「目录」-「C包含目录」中添加头文件所在路径
  3. 在项目属性-「目录」-「库目录」中添加libmycalc.a所在路径,再到链接器参数中添加-lmycalc
  4. 编写测试代码:
#include <stdio.h>
#include "mycalc.h"

int main() {
    int nums[5] = {2,7,1,9,3};
    printf("2 + 7 = %d\n", add(2,7));
    printf("数组最大值为%d\n", get_max(nums, 5));
    return 0;
}
  1. 编译测试项目后,把mycalc.dll放到生成的exe同目录下,即可正常运行。

简化场景说明

部分轻量C库不会单独提供.a导入库,GCC支持直接将DLL作为链接源输入,自动识别导出符号,这种场景下仅需要对外提供头文件+DLL两个文件即可,和你接触的raylib分发形式完全一致。

内容的提问来源于stack exchange,提问作者BaagadBilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:54:01