如何编译:mac上的协同作用

时间:2014-11-14 05:01:01

标签: macos mouse homebrew

我想在我的MAC和Windows上使用 Synergy 。从https://github.com/synergy/synergy下载synergy.zip文件

然后我尝试编译 Xcode项目

但是我收到以下错误消息

bash-3.2# ./hm.sh conf -g2
Mapping command: conf -> configure
Error: Arg missing: --mac-identity

我不知道为什么我不能编译Synergy。

问题。

  1. 什么是 - mac-identity
  2. 如何在我的MAC上键入终端命令?

5 个答案:

答案 0 :(得分:15)

我能够使用以下命令在Yosemite上工作:

./hm.sh conf -g2 --mac-sdk 10.10 --mac-identity Yosemite

当然,只有拥有依赖项,这才有效。您可以使用Homebrew package manager安装它们。

brew install cmake qt

此外,您还希望使用以下内容构建它:

./hm.sh build

最后,要安装它,您将从bin文件夹中获取已编译的结果,即Synergy.app

答案 1 :(得分:6)

我在约塞米蒂有类似的问题。也许你可以找到编译版本in the nightly builds

答案 2 :(得分:2)

这不是如何编译它,但如果你想编译的原因是让它免费,那么你可以转到这个链接:synergy-project.org/download/free/

它允许您下载以前版本的synergy(不是最后一个版本),以保持开源精神。

我还没试过。

答案 3 :(得分:2)

我刚遇到这个问题,这里的解决方案帮助了我完成了我的任务。我还在运行 Yosemite ,但 El Capitan 已经出局。

其结果是 SDK具有不同的路径,因为它现在能够为 El Capitan 进行编译。

sh ./hm.sh config -g2 --mac-sdk 10.11 --mac-identity Yosemite # My answer

任何时候新的操作系统都出来了,运行

是合乎逻辑的
xcrun --show-sdk-path

更新参数。

至于"什么是mac-identity"的答案,它是位于 ext / toolchain / commands1.py 的编译脚本的参数,用于编码:

    err = os.system('codesign --deep -fs "' + self.macIdentity + '" Synergy.app') 

沿着830行的某个地方。

BoldAsLove是正确的,必须注释掉(或删除)这些行

#               if (NOT (OSX_TARGET_MAJOR EQUAL 10))
#                       message(FATAL_ERROR "Mac OS X target must be 10.x")
#               endif ()

此外,qmake存储在

/opt/local/libexec/qt5-mac/bin/qmake

但这可能是一个macports的怪癖。

答案 4 :(得分:1)

要在OS X 10.10 Yosemite上编译,请在CMakeLists.txt的第171行注释掉以下行

#               if (NOT (OSX_TARGET_MAJOR EQUAL 10))
#                       message(FATAL_ERROR "Mac OS X target must be 10.x")
#               endif ()

#               if (OSX_TARGET_MINOR LESS 6)
                        # <= 10.5: 32-bit Intel and PowerPC
#                       set(CMAKE_OSX_ARCHITECTURES "ppc;i386"
#                               CACHE STRING "" FORCE)
#               else()
                        # >= 10.6: Intel only
                        set(CMAKE_OSX_ARCHITECTURES "i386"
                                CACHE STRING "" FORCE)
#               endif()