BASH makeコマンドとcmakeコマンドを使用してC ++フラグを設定できますか?

BASH makeコマンドとcmakeコマンドを使用してC ++フラグを設定できますか?

MX Linux debian 10(buster)を使用しているため、コンパイラを更新できないようです。以前のバージョンと互換性があるように使用されなくなったり修正したりする方法はありますか?たとえば、Btopをコンパイルしようとしたときに実行すると、makeg ++エラーが発生します。

error: unrecognized command line option ‘-std=c++20’; did you mean ‘-std=c++2a’?

makeg ++の以前のバージョンにコンパイルするために実行時に追加できるフラグまたはエントリはありますか?すべてのコードを検索しましたが、「c ++ 20」という1行も見つかりませんでした。私はプログラマーではないので、見逃した部分があるかもしれません。

私がそれを実行すると、g++ -vバージョン8.3.0を実行していると表示されますが、誤解がない限り、このバージョンは20よりはるかに古いようです。

同様に、Tenacity(Audacityブランチ)をコンパイルしようとしていますが、実行すると次のような結果がcmake .得られます。

 CMake Error at CMakeLists.txt:12 (cmake_minimum_required):
  CMake 3.15 or higher is required.  You are running version 3.13.4

これに対する解決策もありますか?

とても感謝しています!

ベストアンサー1

MX Linux debian 10(buster)を使用しているため、コンパイラを更新できないようです。

確信している。バージョンに関係なく、ソースからgccをコンパイルしてローカルにインストールできます。後者には少し努力が必要ですが。

新しいDebianバージョンに切り替えることで労力を節約できます。

[Btop] makeを実行するときに古いバージョンのg ++​​でコンパイルされるようにフラグなどを追加できますか?

BtopのMakefileを見て、何がフラグを設定したかを調べる(make -p役に立つ)、Makefileを直接変更するか、BtopがMakefileを生成するために使用するファイルを変更します。

バージョン8.3.0を実行しているというのに20よりずっと古いようです。

これはgccバージョンではなくC ++標準バージョンに関するものです。見るこのテーブルどのgccバージョンがどの言語標準バージョンをサポートしているかを確認してください。

しかし、これは、Btopソースコードがコンパイラでサポートされていない標準機能を使用している場合、Btopソースコードが明らかにコンパイルされないという意味ではありません。使用する標準バージョンを定義するためにそこに置くと、それでも以前の標準に従ってコンパイルされます。

CMake 3.15以降が必要です。バージョン 3.13.4 を実行しています。

上記の問題:ソースからCmakeをコンパイルするか、最新のパッケージを使用できるようにDebianバージョンをアップグレードしてください。

おすすめ記事