macOS编译dino.im时出现FindSoup.cmake错误求助
问题详情
在全新macOS环境编译dino.im,执行./configure阶段出现CMake找不到Soup包的错误,终端报错如下:
CMake Error at cmake/MultiFind.cmake:20 (find_package):
By not providing "FindSoup.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Soup", but
CMake did not find one.Could not find a package configuration file provided by "Soup" with any of
the following names:SoupConfig.cmake soup-config.cmakeAdd the installation prefix of "Soup" to CMAKE_PREFIX_PATH or set
"Soup_DIR" to a directory containing one of the above files. If "Soup"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
plugins/http-files/CMakeLists.txt:2 (find_packages)
之前的操作流程:
- 按wiki指引安装依赖:
brew install adwaita-icon-theme glib glib-networking gpgme icu4c libgpg-error libgcrypt gtk+3 gtk4 libsignal-protocol-c libgee libsoup libsoup@2 sqlite cmake gettext ninja vala qrencode libxml2 gspell gst-plugins-base srtp libnice - 因brew无法直接安装
gst-plugins-base,改为安装streamer以包含所有gst插件 - 克隆代码仓库:
git clone https://github.com/dino/dino.git - 首次执行
./configure时出现Adwaita缺失错误,已通过安装libadwaita解决;再次执行时触发上述Soup相关错误
解决方案
1. 手动指定Soup的CMake配置路径
通过brew命令获取libsoup的安装前缀,在执行./configure时传入Soup_DIR参数,指向对应的cmake配置目录:
- 如果使用libsoup 3.x:
./configure -DSoup_DIR=$(brew --prefix libsoup)/lib/cmake/Soup-3.0
- 如果使用libsoup@2:
./configure -DSoup_DIR=$(brew --prefix libsoup@2)/lib/cmake/Soup-2.4
2. 链接Soup的CMake配置文件到标准路径
brew安装的libsoup配置文件可能不在CMake默认搜索路径中,手动创建软链接:
- 针对libsoup 3.x:
ln -s $(brew --prefix libsoup)/lib/cmake/Soup-3.0 /usr/local/lib/cmake/Soup-3.0
- 针对libsoup@2:
ln -s $(brew --prefix libsoup@2)/lib/cmake/Soup-2.4 /usr/local/lib/cmake/Soup-2.4
链接完成后重新执行./configure即可。
3. 确认安装了项目所需的libsoup版本
Dino.im的http-files插件可能依赖特定版本的libsoup,检查并调整安装版本:
- 查看已安装的libsoup信息:
brew info libsoup brew info libsoup@2
- 如果项目需要libsoup 3.x,确保已安装并正确链接:
brew install libsoup brew link libsoup --force
- 如果需要libsoup 2.x:
brew install libsoup@2 brew link libsoup@2 --force
内容的提问来源于stack exchange,提问作者dummytokken

