私はしばらくGNU / Linux(Debian)で簡単なプログラムを書いてきました。ただし、g++ は実行を拒否し、エラーを発生させます。たくさん間違い。 Debian では g++ にまったく問題はありません。 AFAIK、すべての依存関係がすでに満たされているため、なぜ実行されないのか理解できません。
私のコードからの抜粋(両方の方法、より多くの方法がありますが、これは私が共有できるすべてです):
#include <unistd.h>
uint64_t constexpr mix(char m, uint64_t s)
{
return ((s << 7) + ~(s >> 3)) + ~m;
}
uint64_t constexpr hashIt(const char* m)
{
return (*m) ? mix(*m, hashIt(m + 1)) : 0;
}
g++ は以下を返します。
main2.cpp:3:19: error: expected ';' after top level declarator
uint64_t constexpr mix(char m, uint64_t s)
^
;
1 error generated.
Debianはもちろん、他のディストリビューションでも完璧に動作します。
返信ありがとうございます!
編集:brew install gcc
パッケージを正常に実行してインストールしました。ただし、一般的なディレクトリ(/usr/local/bin, /usr/local/Cellar
.)にはありません。
答え1
Homebrewパッケージマネージャを使用してmacOSにGNU Compiler Collection(GCC)をインストールすると、実行可能ファイルが呼び出され、これにはbrew install gcc
最新g++
バージョンg++-11
の11
GCCに対応する番号が含まれます。
brew install gcc@9
これは、たとえばバージョン9をインストールして複数のバージョンのGCCを同時にインストールし、g++
Appleエイリアスを数字なしで維持できるようにするためですclang++
。
したがって、gcc
パッケージをインストールしてg++-11
C ++でコンパイルすると、clang++
macOSのコンパイラはコードをサポートしません。