質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

5418閲覧

M1 MacBookでgcc環境を構築したい

ariari-rama

総合スコア0

g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2021/06/04 06:56

編集2021/06/04 10:00

実現したいこと

競プロの為、#include <bits/stdc++.h>などを用いたくgcc環境を構築したいです。

###使用環境
使用しているPCは2021年4月に購入したM1 MacBookです。ターミナルはzshです。

###経緯

「MacでGCCを"正しく"環境構築しよう!」
https://qiita.com/DaikiSuyama/items/09f5aa399aad37783146
こちらのサイトを参考に設定を試みました。

[1]CommandLineToolsのインストール
[2]Homebrewの導入
まで行い、正常にインストールできていることを確認済みです。

%brew install gcc でgccのインストールを行い、
% brew list | grep gcc で gccと出力されたため、問題なくインストールされていると思われます。

発生している問題・エラーメッセージ

この後、上記のサイトには
__

Homebrewでインストールしたパッケージは/usr/local/Cellarにインストールされるので、% ls /usr/local/Cellar | grep gccでも同様の出力になるはずです。

さらに、インストール時にコンパイラへのシンボリックリンクが/usr/local/binから張られるので、% ls -l /usr/local/bin | grep g++により確認できます。
__

とありますが。それぞれ試みると
ls: /usr/local/Cellar: No such file or directory
ls: /usr/local/bin: No such file or directory
と表示されました。

確認すると上記のディレクトリは存在しませんでした。
/usr/local中に存在するディレクトリはshare/ のみです。)
$ where gccでgccがインストールされた場所を確認すると
/usr/bin/gcc と表示されました。

また、$ where g++でg++の場所を検索すると、
/usr/bin/g++と表示され、同じディレクトリに存在するらしいことがわかりました。

ディレクトリがどうであろうと正しくコンパイルできさえすればいのですが、
gccコマンドを打ってもコンパイルできません。
ファイルを指定せずにgccを実行すると
clang: error: no input files
とエラーを出すあたり、gccが動いているように見えませんし、
g++では正常にコンパイルできたコードに対しても
clang: error: linker command failed with exit code 1 (use -v to see invocation)
のエラーが出ます。

何から手をつけていけば良いのかわからず、途方に暮れています。
問題の解決にあたって、必要な情報があれば指摘していただければ幸いです。

初めての質問で、至らぬ点も多いのですが、よろしくおねがいいたします。

追記・質問への解答
Q Homebrewを/opt/homebrewにインストールしなかったか
A 確かに/opt/homebrew%にインストールしています。

Q ターミナルをRosettaをONにして使っているか
A Macを使うのが初めてでRosettaというワードをこの質問で知りました。
デフォルトのままだと思います。(おそらくOFF?)

アドバイス:参考にした記事の /usr/local はすべて /opt/homebrew に読み替えましょう
A これで解決に向かいました。ありがとうございます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2021/06/04 07:16 編集

Homebrewを/opt/homebrewにインストールしなかったですか? ターミナルをRosettaをONにして使っているかどうかに依りますがどうなっていますか? そのあたりを質問を編集して追記しましょう。 (途中で投稿してしまいました)
ariari-rama

2021/06/04 07:37

質問を追記しました。よろしくおねがします。
hoshi-takanori

2021/06/04 07:41

M1 Mac では Homebrew は /opt/homebrew にインストールされるので、参考にした記事の /usr/local はすべて /opt/homebrew に読み替えましょう。個人的には、ターミナルを Rosetta 2 で使うことはお勧めしません。
technocore

2021/06/04 08:29

/usr/bin/gcc /usr/bin/g++ これらはMacOS標準のCコンパイラですけど、その実態はclangです。 homebrewからgccを落として、PATHでそれを優先させればいいでしょう。
ariari-rama

2021/06/04 10:02

みなさま、ありがとうございました。 「参考にした記事の /usr/local はすべて /opt/homebrew に読み替えましょう。」これで一気に解決しました。
guest

回答1

0

自己解決

Homebrewがダウンロードされる先が、参考にした記事の/usr/local ではなく/opt/homebrewであったそのため、参照ができなかった。

PATHで/opt/homebrewを優先させることによって、g++-11を用いることができるようになった。

たくさんコメントいただきましたが、回答の形式でなかったため、ベストアンサー?の指定ができなかったため、自己解決の項目を利用させていただきます。

投稿2021/06/04 10:07

ariari-rama

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問