如何在 Mac 上打开点

首先,我是 MacOS 的新手,我想要的是能够看到 llc -view-dag-combine1-dags sum.ll的输出。在 Mac 上,有限责任公司将在 /tmp目录中生成点,并尝试打开 App 以显示点文件。 我试过 Graphviz,但它不工作(程序崩溃)。我想尝试其他东西,例如 Xdot。我通过 brew install xdot安装它,但不知道如何让 MacOS 使用我刚刚安装的 xdot打开点文件。

或者其他更好的工具来查看点文件? 我想让事情尽可能简单。

111058 次浏览

Homebrew has graphviz which is command line only. I would suggest using MacPorts to install graphviz-gui, that will save us from a lot of trouble.

I never used 'llc' before.

But in my case to deal with the .dot file

I used brew install graphviz

Then used the following command to convert .dot to .png

dot -Tpng DocName.dot -o DocName.png

It works every time without crash.

You can also build the Graphviz GUI app using homebrew if you have Xcode installed:

brew install graphviz --with-app

If you already installed the graphviz brew, you will want to do this:

brew reinstall graphviz --with-app

At the time of writing, this doesn't appear to install a symlink to the app into /Applications like cask does, so if you want that you'll need to do it manually (or copy the application out).

To find the location of the app bundle, have a look at the build log, you should see a line like this:

./configure --prefix=/usr/local/Cellar/graphviz/2.40.1

If you don't have the build log anymore, you can determine this path by running brew list graphviz or brew info graphviz.

Open up the folder (replace this with the actual path you determined in the previous step):

open /usr/local/Cellar/graphviz/2.40.1

Inside here you should see Graphviz.app. You can move/copy it to /Applications or create an alias by dragging it to /Applications and holding the and option keys.

Warning! May currently be broken on Mojave.

Please see comment below from Kim Stacks:

As of 2018-12-21, for macOS mojave, there's an issue with using the --with-app flag in the brew install command. See gitlab.com/graphviz/graphviz/issues/1445. Will update this when the fix is working.

It appears as if there is an issue with Graphviz itself currently preventing builds on macOS Mojave. Please do not comment on this answer saying that it doesn't work, it will accomplish nothing. You may follow the issue above for more updates and we'll try to update this answer if/when the situation is resolved by the Graphviz devs.

If people want to help get this fixed, there is a partially implemented upgrade PR that needs some love to take it over the finish line (see comments.)~~

Update: build is fixed, but homebrew has removed GUI support

The saga continues. The upstream build breakage with Graphviz was resolved in August 2020. However, the homebrew team has apparently instituted a new policy to remove all build options from Homebrew formulae. The --with-app option was removed from graphviz formula in January 2019.

I'm afraid I don't have a new solution for how to do this other than manually building from source. If somebody has any ideas, please share them in the comments. I am going to keep this answer up as I think this should be the right way to do this, we just need more advocacy (and volunteer devs) to improve the user experience for Graphviz users on macOS.

You can install graphviz via brew. BrewInstall is a handy website to get steps of installing all mac apps. I found the below answer on BrewInstall.

Install brew first with the following command:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

Now install graphviz with brew with the following command

brew install graphviz

To install it with GUI version, run the following command instead of above command:

brew install graphviz --with-app

New versions on macOS allow you to toggle the ability to view/work with hidden files.

For those developing on macOS - pressing down Command + Shift + Period (Command + Shift + .) in the file system of macOS will hide or show invisible files. This will allow you to toggle the ability to create and work with dot files.

For simple viewing or editing of dot files, this approach would probably work the best. Note that, while this toggle is active, seems to be a system wide switch, allowing other apps to access/open the dot files as you would any text file.