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

Codelite中使用MSYS2 MinGW64的libserialport库出现链接错误

解决MSYS2 libserialport在CodeLite中的链接问题

1. 核对CodeLite的编译器版本

  • 确保CodeLite使用的是MSYS2 Mingw64的gcc,路径必须指向C:\msys64\mingw64\bin\gcc.exe
  • 右键项目→Settings→Compiler,确认Toolchain选的是MinGW-w64 GCC(MSYS2),不要用其他版本的编译器

2. 给链接器加正确参数

直接在CodeLite项目里配置链接库:

  • 右键项目→Settings→Linker→Libraries
    • 库名称填serialport(不用加lib前缀或.a后缀,GCC会自动解析)
    • 库路径添加C:\msys64\mingw64\lib

嫌麻烦的话,直接在Linker→Options里加一行:

-LC:\msys64\mingw64\lib -lserialport

3. 静态链接的正确姿势

如果要静态编译,必须把依赖的系统库也加上——Windows下libserialport依赖setupapi,所以链接参数改成:

-static -LC:\msys64\mingw64\lib -lserialport -lsetupapi

4. 先在MSYS2终端验证库是否正常

绕开CodeLite,先在MSYS2的Mingw64终端里编译代码,确认库本身没问题:

cd 你的代码所在目录
gcc list_ports.c -o list_ports.exe -lserialport
./list_ports.exe

如果这个能正常运行,说明问题全在CodeLite配置上;如果也报错,重新安装libserialport:

pacman -S mingw-w64-x86_64-libserialport

5. 修复CodeLite的Makefile生成问题

如果修改Makefile生成器导致编译卡住,直接恢复默认设置:

  • 项目Settings→General→Makefile Generator,选择CodeLite Makefile Generator
  • 确保Build Directory是项目下的Debug或Release目录,路径不要带中文和空格

6. 运行时找不到DLL的解决方法

编译成功后运行提示缺失libserialport-0.dll的话,二选一:

  • 把C:\msys64\mingw64\bin添加到系统环境变量PATH,重启CodeLite
  • 把libserialport-0.dll复制到生成的exe同一个文件夹里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:11:29