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?

AppleシリコンでもhombrewでインストールしたCライブラリのパスを通す

Last updated at Posted at 2024-08-23

はじめに

homebrew でインストールしたCライブラリは$(brew --prefix)/include$(brew --prefix)/lib にシンボリックリンクが張られる.

Intelでは brew --prefix/usr/local だったため, コンパイラのデフォルトでパスに入っていた.
しかしAppleシリコンでは brew --prefix/opt/homebrew のため, 自前でパスを追加する必要がある.

設定方法

コンパイル時のオプションで -I-L を追加すればいいが,
毎回指定するのが煩雑な場合は CPATH (または C_INCLUDE_PATH, CPLUS_INCLUDE_PATH)LIBRARY_PATH に追加することもできる.

全体 (シェル) で設定する場合

下記のようにシェルで実行するか, ~/.zprofile に書く.

if [[ -d /opt/homebrew ]] ; then # ifの条件は適宜編集するか削除する
  export CPATH="/opt/homebrew/include:${CPATH}"
  export LIBRARY_PATH="/opt/homebrew/lib:${LIBRARY_PATH}"
fi
なお参考で brew shellenv はこうなっている.
export HOMEBREW_PREFIX="/opt/homebrew";
export HOMEBREW_CELLAR="/opt/homebrew/Cellar";
export HOMEBREW_REPOSITORY="/opt/homebrew";
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin${PATH+:$PATH}";
[ -z "${MANPATH-}" ] || export MANPATH=":${MANPATH#:}";
export INFOPATH="/opt/homebrew/share/info:${INFOPATH:-}";

また, 特定のCライブラリだけパスを通したい場合は, 下記のとおり.

if [[ -d /opt/homebrew ]] ; then # ifの条件は適宜編集するか削除する
  export CPATH="$(brew --prefix googletest)/include:${CPATH}"
  export LIBRARY_PATH="$(brew --prefix googletest)/lib:${LIBRARY_PATH}"
fi
なおパスはこうなっている.
$ ls -lhFG $(brew --prefix googletest)
lrwxr-xr-x@ 1 skkzsh  admin    27B  8 23 11:57 /opt/homebrew/opt/googletest@ -> ../Cellar/googletest/1.15.2

$ ls -1FG $(brew --prefix googletest)/
INSTALL_RECEIPT.json
LICENSE
README.md
include/
lib/
sbom.spdx.json

$ ls -1FG $(brew --prefix googletest)/include
gmock/
googlemock/
googletest/
gtest/

$ ls -1FG $(brew --prefix googletest)/lib
cmake/
libgmock.a
libgmock_main.a
libgtest.a
libgtest_main.a
pkgconfig/

makeのときだけ設定する場合

Makefile に下記のように追加する.

Makefile
ifeq ($(shell uname -p), arm)  # ifの条件は適宜編集するか削除する
    export CPATH := /opt/homebrew/include:$(CPATH)
    export LIBRARY_PATH := /opt/homebrew/lib:$(LIBRARY_PATH)
endif

確認環境

$ g++ -v
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
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?