具体过程原来的build.bat编译脚本生成.dll文件是这样写的g和gcc即所所配制的MinGW工具链\bin路径下的g.exe和gcc.exe首先这里是只生成了.dll文件但是找资料或问AI说CMake链接.dll库同时要静态链接库如.lib和动态链接库如.dll且该项目uart_win32.c中大量用了bool类型C/C的语法但大部分还是很纯正的C语言语法甚至还有goto注意到上面1条命令第一条编译生成.o文件用的是g第2条打包为.dll库用的是gcc两者是分开的我在试过直接都用g打包.dll的时候会出现英文形如“不知道编译的是那种语言”报错后来仔细看才发现这里的细节将这两句脚本改为如下回到“学习过程”看的教程AI搜索.lib静态链接库的文件只适用于MSVC编译器对于MinGW64即使是在Windows环境开发是不可行的编译过程会报错提示“找不到库文件”即使uart_win32.lib文件就在路径中要用.a格式的静态链接库正如它报错提示要的需要-luart_win32文件指的就是libuart_win32.a这个文件如之前看有的MinGW工具链Make配置找链接库的时候写“uart_win32”通常指的是找这个“libxxx.a”格式文件即找路径中的libuart_win32.a上面CMakelist.txt中配置target_link_libraries即“添加链接库”里面要填进去的是静态链接库的路径一般Visual Studio用MSVC开发的话就用.lib格式文件MinWG开发的话就用“libxxx.a”格式文件Windows操作系统也是如此使用的时候要在.exe程序路径下放入对应的.dll动态链接库文件除格式外和静态链接库文件同名实际用的时候我把它用在了C工程但是实际代码中引用这个主要由C语言打包成的.dll库的时候#include引用要这样写不然g编译的时候还是会显示形如“函数在.h声明但是未找到定义”的报错当然调用一个.dll动态链接库过程.h文件也是不可少的要放在路径中被用到的.cpp索引到总结一个C/C工程调用一个.dll动态链接库必要的3种格式文件是.h文件用于编程#include索引、.dll文件相当于该库源代码本身、.lib\libxxx.a静态链接库文件用于配置工程链接到.dll在新C工程build.bat脚本的构建CMake和调用MinGW编译部分命令最终编译成功程序功能也正常。