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

Windows11+Msys UCRT64环境下pkg-config编译参数报错修复咨询

解决Msys UCRT64下mingw32-make编译报错问题

问题原因

报错是因为Makefile里的反引号`在当前Msys UCRT64的Make环境中未被正确解析,导致pkg-config vips-cpp --cflags --libs没有被执行,反而把--cflags、--libs直接作为参数传给g++,而g++并不识别这两个选项。

解决方案

方案1:替换反引号为Make标准的$(shell)语法

修改Makefile内容如下:

all:
    g++ fitscli.cpp vipsoperations.cpp fits.cpp ConsoleTable.cpp $(shell pkg-config vips-cpp --cflags --libs) -lcfitsio -ltiff -o fitscli

方案2:将pkg-config结果存入变量(更易调试)

把编译链接参数提前定义成变量,再在编译命令中引用:

# 先通过pkg-config获取vips-cpp的编译和链接参数
VIPS_CFLAGS_LIBS := $(shell pkg-config vips-cpp --cflags --libs)

all:
    g++ fitscli.cpp vipsoperations.cpp fits.cpp ConsoleTable.cpp $(VIPS_CFLAGS_LIBS) -lcfitsio -ltiff -o fitscli

额外检查项

  • 先在UCRT64终端手动执行pkg-config vips-cpp --cflags --libs,确认能输出正常的编译参数(比如-I...、-L...、-lvips-cpp这类),如果输出错误,说明vips-cpp的.pc文件没被pkg-config找到,需要检查PKG_CONFIG_PATH环境变量是否包含vips-cpp的.pc所在目录。
  • 如果pkg-config路径有问题,可以指定完整路径,比如$(shell /ucrt64/bin/pkg-config vips-cpp --cflags --libs)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:05:20