Linux转Windows控制台应用移植:Windows下依赖库获取问题
Windows环境下获取移植所需依赖库的方案
GLib库
- 用MSYS2安装:打开MSYS2的UCRT64终端,执行
pacman -S mingw-w64-ucrt-x86_64-glib2。编译时需指定头文件路径与链接库,示例参数:-I/mingw64/include/glib-2.0 -I/mingw64/lib/glib-2.0/include -lglib-2.0。 - 用vcpkg安装:执行
vcpkg install glib:x64-windows,编译时需指定vcpkg安装目录下的头文件与库路径,示例参数:-I<vcpkg根目录>/installed/x64-windows/include -L<vcpkg根目录>/installed/x64-windows/lib -lglib-2.0。
libmachinery库
- 该库无Windows官方预编译包,需自行从源码编译:
- 克隆源码到本地,在MSYS2或WSL环境中,按Linux编译流程配置(如
./configure --prefix=/mingw64),执行make && make install生成Windows兼容的库文件。 - 若源码依赖Linux特定组件,需修改代码适配Windows,比如替换系统调用为Windows对应API,或借助MinGW兼容层。
- 克隆源码到本地,在MSYS2或WSL环境中,按Linux编译流程配置(如
libmodbus库
- MSYS2安装:在UCRT64终端执行
pacman -S mingw-w64-ucrt-x86_64-libmodbus,编译时添加-lmodbus参数链接库。 - vcpkg安装:执行
vcpkg install libmodbus:x64-windows,编译时指定vcpkg对应的头文件与库路径即可。
编译额外提示
- 确保所有依赖库使用同一编译环境(全用MSYS2或全用vcpkg),避免版本或路径冲突。
- 完整编译命令需整合所有依赖的头文件路径与链接参数,示例:
gcc foggycsv.c -o foggycsv.exe -I/mingw64/include/glib-2.0 -I/mingw64/lib/glib-2.0/include -I/mingw64/include/libmachinery -I/mingw64/include/modbus -lglib-2.0 -lmachinery -lmodbus - 若运行时提示动态库缺失,将对应
.dll文件放到可执行文件同目录,或添加到系统PATH环境变量。
内容的提问来源于stack exchange,提问作者aim0d
相关产品推荐
相关产品推荐

