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

使用Makefile链接cimgui到C项目时遇链接错误求助

解决MinGW链接cimgui时的"cannot find -lcimgui.dll"错误

问题根源

你在链接选项里同时指定了-lcimgui和-lcimgui.dll,但MinGW链接器处理动态库的逻辑是:使用-l{库名}时,会自动查找lib{库名}.dll.a(动态导入库)或lib{库名}.a(静态库)。你的build目录里已经存在libcimgui.dll.a,这正是链接cimgui动态库所需的导入库,-lcimgui.dll是多余且错误的写法——链接器会尝试寻找不符合命名规范的目标文件,最终导致找不到文件的错误。

修复步骤

修改Makefile中的LINKER_FLAGS,删除多余的-lcimgui.dll,只保留-lcimgui:

LINKER_FLAGS         := -lSDL2 -lopengl32 -lcimgui

完整修复后的Makefile

PROJ                 := proj
TARGET               := $(PROJ)
OBJ                  := sub.o main.o

INCLUDE_PATH         := -IC:\path\to\SDL2 -IC:\path\to\cimgui
LIB_PATH             := -LC:\path\to\SDL2\lib -LC:\path\to\cimgui\build
LINKER_FLAGS         := -lSDL2 -lopengl32 -lcimgui

CFLAGS               := $(INCLUDE_PATH)

.PHONY               : build clean

build : $(TARGET).exe

$(TARGET).exe: $(OBJ)
    gcc $^ $(LIB_PATH) $(LINKER_FLAGS) -o $@

sub.o: sub.c sub.h
    gcc -c $(CFLAGS) $< -o $@

main.o: main.c sub.h
    $(CC) $(CFLAGS) $< -o $@

clean :
    @rm -fv *.o
    @rm -fv *.exe

额外注意事项

编译成功后,运行可执行文件前,需要将cimgui.dll复制到你的项目可执行文件所在目录,或者添加到系统PATH环境变量中,否则程序运行时会提示找不到动态库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:55:18