[FreeBSD-users-jp 96517] Re: FreeBSD-12.1 の libGLU.so の問題

Hiroki Sato hrs @ allbsd.org
2019年 12月 17日 (火) 07:46:09 UTC


佐藤です。

Kouichi Hirabayashi <kh @ mogami.com> wrote
  in <20191206112751.9f76dc8c32a78069771f7518 @ mogami.com>:

kh> >  g++ -o a a.cpp -I/usr/local/include -L/usr/local/lib -lc++ -lglut -lGLU -lm
kh> > と -lc++ を真っ先にリンクしてみてください。
kh>
kh> で、うまくゆくようです。助かりました。

 これだと libstdc++ と libc++ の両方がリンクされた状態になると思います。
 初期化に失敗するという問題は回避でき、コンパイルもとおるのですが、
 libstdc++ と libc++ には完全な互換性がありませんので、
 標準ライブラリ関数の呼び出し等で問題が出る可能性があります。

 「clang++ と libc++ を使ってコンパイルしたバイナリ」を
 「g++ でコンパイルしたバイナリ」を組み合わせたい(つまり libc++ を使う)場合、
 g++ には libc++ だけをリンクするように指示を出す必要があります。
 また、C++ の標準ヘッダファイル群も libc++ 用のものを
 使わないといけないため、具体的には、次のようなオプションを
 並べる必要があります。残念ながら、一発で切り替える便利な
 オプションはありません。

 % g++ -nostdinc++ -I/usr/include/c++/v1 -nodefaultlibs -lc++ -lc -lm -lgcc_s

-- Hiroki
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 無し
型:         application/pgp-signature
サイズ:     338 バイト
説明:       無し
URL:        <http://lists.freebsd.org/pipermail/freebsd-users-jp/attachments/20191217/956ba43e/attachment.sig>


freebsd-users-jp メーリングリストの案内