首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上运行ddd

在Mac上运行ddd
EN

Stack Overflow用户
提问于 2014-10-16 13:35:55
回答 2查看 9.4K关注 0票数 9

我尝试使用以下命令安装和运行ddd:

代码语言:javascript
复制
brew install libtool
brew link lesstif
brew install ddd

并在尝试运行ddd时收到以下错误消息:

代码语言:javascript
复制
cd@new-host:~$ ddd
dyld: Library not loaded: /opt/X11/lib/libSM.6.dylib
Referenced from: /usr/local/lib/libXm.2.dylib
Reason: image not found
Trace/BPT trap: 5

以下是brew配置的输出:

代码语言:javascript
复制
HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew
HEAD: 7a427a6528c0aa123a43d3adf1c5944ab622c27e
Last commit: 2 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: dual-core 64-bit penryn
OS X: 10.7.5-i386
Xcode: 4.6.3
CLT: 4.6.0.0.1.1365549073
LLVM-GCC: build 2336
Clang: 4.2 build 425
X11: 2.6.5 => /usr/X11
System Ruby: 1.8.7-358
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

下面是我来自brew医生的输出:

代码语言:javascript
复制
Warning: Some directories in /usr/local/share/man aren't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to add locale information to one of these directories, then the install will fail during the link step. You should probably chown them:

/usr/local/share/man/de
/usr/local/share/man/de/man1
/usr/local/share/man/mann

Warning: Unbrewed dylibs were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:

/usr/local/lib/libtcl8.6.dylib
/usr/local/lib/libtk8.6.dylib

Warning: Unbrewed header files were found in /usr/local/include. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.

Unexpected header files:

/usr/local/include/fakemysql.h
/usr/local/include/fakepq.h
/usr/local/include/fakesql.h
/usr/local/include/itcl.h
/usr/local/include/itcl2TclOO.h
/usr/local/include/itclDecls.h
/usr/local/include/itclInt.h
/usr/local/include/itclIntDecls.h
/usr/local/include/itclMigrate2TclCore.h
/usr/local/include/itclTclIntStubsFcn.h
/usr/local/include/mysqlStubs.h
/usr/local/include/odbcStubs.h
/usr/local/include/pqStubs.h
/usr/local/include/tcl.h
/usr/local/include/tclDecls.h
/usr/local/include/tclOO.h
/usr/local/include/tclOODecls.h
/usr/local/include/tclPlatDecls.h
/usr/local/include/tclThread.h
/usr/local/include/tclTomMath.h
/usr/local/include/tclTomMathDecls.h
/usr/local/include/tdbc.h
/usr/local/include/tdbcDecls.h
/usr/local/include/tdbcInt.h
/usr/local/include/tk.h
/usr/local/include/tkDecls.h
/usr/local/include/tkPlatDecls.h

Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.

Unexpected .pc files:

/usr/local/lib/pkgconfig/tcl.pc
/usr/local/lib/pkgconfig/tk.pc

Warning: Unbrewed static libraries were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.

Unexpected static libraries:

/usr/local/lib/libtclstub8.6.a
/usr/local/lib/libtkstub8.6.a

Warning: /usr/bin occurs before /usr/local/bin This means that system-provided programs will be used instead of those provided by Homebrew. The following tools exist at both paths:

dot

Consider setting your PATH so that /usr/local/bin occurs before /usr/bin. Here is a one-liner:

echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile 

这些是我应该尝试纠正的医生警告吗?我所有其他的brew安装程序都很好,所以有点不愿意开始处理这些文件。谢谢!

编辑: On macOS 10.14.4,我得到了以下错误:

代码语言:javascript
复制
Jamess-MacBook-Air:haskell-usaco james$ ddd
Error: Unresolved inheritance operation

Xt error (Unresolved inheritance operation).

Oops!  You have found a bug in DDD.

If you can reproduce this bug, please send a bug report
to <ddd@gnu.org>, giving a subject like

    DDD 3.3.12 (i386-apple-darwin18.0.0) gets Xt error

使用LLDB启动DDD将输出以下错误消息:

代码语言:javascript
复制
XIO:  fatal IO error 35 (Resource temporarily unavailable) on X server "/private/tmp/com.apple.launchd.cxF3NWNYqR/org.macosforge.xquartz:0"
      after 5 requests (5 known processed) with 0 events remaining

X11是从家酿和XQuartz网站安装的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-19 02:33:29

所以我认为MacOSX10.7.5。附带XQuartz (安装时只有10.8及更高版本)。

以下是最终对我起作用的东西:

未编译的dylib、头文件、.pc文件和静态库是由非自制的R安装在那里的,因此我使用以下命令卸载了R:

代码语言:javascript
复制
rm -rf /Library/Frameworks/R.framework /Applications/R.app \
/usr/bin/R /usr/bin/Rscript

然后,我卸载了ddd、未链接的lesstif和卸载的lesstif:

代码语言:javascript
复制
brew uninstall ddd
brew unlink lesstif
brew uninstall lesstif

接下来,我安装了tcl-tk:

代码语言:javascript
复制
brew tap homebrew/dupes
brew install tcl-tk

然后,我用brew安装从源代码构建了lesstif:

代码语言:javascript
复制
brew install --build-from-source lesstif

我失去了信心:

代码语言:javascript
复制
brew unlink lesstif && brew link lesstif

最后,我安装了ddd:

代码语言:javascript
复制
brew install ddd

而且起作用了!我不确定这些步骤中的哪一步是关键步骤,但我猜是这样的:

代码语言:javascript
复制
brew install --build-from-source lesstif

我还是不知道这两个人有什么不同:

代码语言:javascript
复制
brew install --build-from-source lesstif
brew install lesstif

我还查找了以下目录和文件:

代码语言:javascript
复制
/opt/X11/lib/libSM.6.dylib exist

但它们并不存在于我的电脑上。

代码语言:javascript
复制
@new-host:~$ cd ~
@new-host:~$ cd /opt
-bash: cd: /opt: No such file or directory

相反,我在这里找到了X11文件:

代码语言:javascript
复制
@new-host:/usr/X11$ cd ~
@new-host:~$ cd /usr/X11/lib
@new-host:/usr/X11/lib$ ls
...
libSM.6.dylib
...

我想我可以用某种象征性的链接来解决这个问题,但并不完全确定。

最后,那些未酿造的dylib、头文件、.pc文件和静态库都是由非自制的R安装在那里的,但我不确定是否有任何方法可以安全地删除它们,以消除brew医生的警告。(我可能得和他们住在一起)。

R安装由三个Apple包组成:

代码语言:javascript
复制
org.r-project.R.x86_64.fw.pkg
org.r-project.R.x86_64.GUI.pkg
org.r-project.x86_64.tcltk.x11

根据R网站(http://cran.r-project.org/doc/manuals/r-release/R-admin.html#Uninstalling-under-OS-X):如果您想让Apple忘记包而不删除其文件(当并行安装多个R版本时对R框架有用),或者在删除文件之后,您可以使用pkgutil --unlink ( Lion或更高版本不支持)删除它们的文件或pkgutil --forget

卸载Tcl/Tk组件(安装在/usr/local下)并不简单。您可以通过以下方式列出安装在终端中的文件

代码语言:javascript
复制
pkgutil --files org.r-project.x86_64.tcltk.x11

对我来说太可怕了,无法解决删除问题,所以我将继续使用brew doctor警告。很高兴ddd终于成功了。

票数 3
EN

Stack Overflow用户

发布于 2014-10-17 13:50:05

您需要安装XQuartz以获取/opt/lib中的那些X库。

http://xquartz.macosforge.org/landing/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26405865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档