在OS X上构建OpenSSH:configure:警告:sandbox.h:存在但无法编译

时间:2012-09-02 23:45:37

标签: macos openssh

我正在尝试在OS X上构建最新的openssh Portable。但是,当我运行./confure时,会出现这种情况:

configure: WARNING: sandbox.h: present but cannot be compiled
configure: WARNING: sandbox.h:     check for missing prerequisite headers?
configure: WARNING: sandbox.h: see the Autoconf documentation
configure: WARNING: sandbox.h:     section "Present But Cannot Be Compiled"
configure: WARNING: sandbox.h: proceeding with the preprocessor's result
configure: WARNING: sandbox.h: in the future, the compiler will take precedence
configure: WARNING:     ## ------------------------------------------- ##
configure: WARNING:     ## Report this to openssh-unix-dev@mindrot.org ##
configure: WARNING:     ## ------------------------------------------- ##
checking for sandbox.h... yes

当我尝试构建它时:

In file included from sandbox-darwin.c:23:
/usr/include/sandbox.h:98:29: error: sandbox/private.h: No such file or directory
make: *** [sandbox-darwin.o] Error 1

毋庸置疑,这是一个问题。我搜索了谷歌并浏览了“可能已经有你的答案的问题”,但似乎没有任何相关性。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

可以通过在构建命令中添加#define来解决此问题(建议here):

gcc -D__APPLE_API_STRICT_CONFORMANCE -I . -c sandbox-darwin.c -o sandbox-darwin.o

注意:这是如何编译sandbox-darwin.c的最小示例,您可能需要根据您的平台添加适当的其他命令行参数 - 只需复制build命令并添加-D__APPLE_API_STRICT_CONFORMANCE或添加它Makefile。

这是我最近遇到过的事情(使用openssh-6.8p1和6.9p1),我不清楚为什么这个'修复'不包含在openssh或Macports的一部分......?这可能是由于这个问题似乎只影响了OSX Lion 10.7,尽管我没有在其他版本上测试过它......