0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

M1 Macでboostを使う

Posted at

概要

M1搭載のMacでboostライブラリを使おうとしたら, Error や Warningが多数でました. ここでは次の形でコンパイルが通ったので, 備忘録的に書いておきます.

開発環境

  • macOS Ventura 13.2.1
  • g++ : Apple clang version 14.0.0 (clang-1400.0.29.202), Target: arm64-apple-darwin22.3.0
  • Boost : boost_1_18_0

エラーメッセージ

error: unknown type name 'constexpr'
error: a space is required between consecutive right angle brackets (use '> >')
#error "This library now requires a C++11 or later compiler - this message was generated as a result of BOOST_NO_CXX11_RVALUE_REFERENCES being set"

エラーを見ていると, boost内部でのコンパイルエラーのようです.
g++は, Apple自身が提供しているものです. バージョンを見る限り, C++11には対応済みです.

解決策

コンパイルオプションとして, 次を指定します.

-std=c++11

これにより, C++11の拡張やライブラリを使用することが可能となります. Boost.Math は, C++14以降でしか使えないという Warninもあります. 次の指定すると, このWarningも消えます.

-std=c++14

まだ sprintfのWarning もありますが, 気にしないことにします. エラーは消えましたので, コンパイルは通るようになりました.

追記

今回は, Boost を https://www.boost.org/ からダウンロードして, コンパイルするところからはじめましたが, Homebrew を使うと簡単にインストールできます. こちらのライブラリでもコンパイルは通りました.
なお, コンパイル時には,

-I(インクルードファイルのディレクトリ)
-L(ライブラリのディレクトリ)

を付けることを忘れないようにしましょう.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?