如何在Linux Mint上正确编译Synergy?编译遇版本未设置错误求助
先把你遇到的错误信息整理出来:
CMake Warning at cmake/Version.cmake:27 (message):
Synergy version wasn't set. Set to 2.0.0
Call Stack (most recent call first):
CMakeLists.txt:48 (include)
-- Full Synergy version string is '2.0.0-snapshot.b1-1cf3baed'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sszebrat/synergy-core/build
[ 2%] Built target common
[ 13%] Built target arc...
这个警告本质是CMake脚本无法自动获取到Synergy的正式版本号,所以 fallback 到了默认的2.0.0快照版本。下面给你几个可行的解决办法:
手动指定版本号编译
在运行CMake配置的时候,直接通过-DSYNERGY_VERSION参数指定你想要的版本号(比如用最新的稳定版,你可以根据实际情况调整):cd /home/sszebrat/synergy-core/build rm -rf ./* # 先清空之前的配置文件 cmake -DSYNERGY_VERSION=2.14.6 .. make这样就能覆盖默认的快照版本,彻底消除这个警告。
让CMake自动从Git标签获取版本
如果你是直接从Git仓库克隆的源码,大概率是没拉取完整的Git标签,导致脚本没法识别正式版本。先回到源码根目录执行:cd /home/sszebrat/synergy-core git fetch --tags之后重新进入build目录执行CMake和make,脚本就能自动读取Git标签里的正式版本号了。
忽略警告继续编译(如果功能不受影响)
从日志来看,CMake已经完成了配置和生成,而且已经成功构建了common和arc目标。这个警告只是版本号的提示,不会中断编译流程。如果后续编译没有其他报错,你可以继续完成make,只是最终生成的Synergy会显示为快照版,核心功能不会受影响。
内容的提问来源于stack exchange,提问作者sebstack

