WSL2环境下使用opam安装lablgtk与cairo2-gtk失败求助
解决方案
问题根因
你的环境中同时存在Linuxbrew安装的GTK 2.24.33和Ubuntu系统源安装的GTK 2.24.32两个版本:
- pkg-config优先调用Linuxbrew下的工具,获取到的GTK版本为2.24.33
- 实际动态链接时优先加载系统路径下的GTK 2.24.32库,版本不匹配导致编译失败
操作步骤
- 临时调整PATH优先级,让系统原生pkg-config优先调用
export PATH=/usr/bin:$PATH
执行后验证配置生效:
- 执行
which pkg-config返回结果应为/usr/bin/pkg-config - 执行
pkg-config --modversion gtk+-2.0返回结果应为2.24.32,和系统安装的版本一致
- 补充系统pkgconfig路径到环境变量
export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH
- 清理opam缓存后重新安装依赖
opam clean opam install lablgtk cairo2-gtk
依赖安装成功后即可继续安装amfinder软件包。
备选方案(可选)
如果不想修改环境变量,可直接卸载Linuxbrew中的GTK2包消除版本冲突:
brew remove gtk+
再重复执行上述第三步的安装操作即可。
永久生效配置(可选)
如果需要避免后续再出现同类问题,可将以下配置写入~/.bashrc文件:
export PATH=/usr/bin:$PATH export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
写入后执行source ~/.bashrc使配置立即生效。
内容的提问来源于stack exchange,提问作者alr
相关产品推荐
相关产品推荐

