佐藤です。 Kouichi Hirabayashi <k...@mogami.com> wrote in <20191206112751.9f76dc8c32a78069771f7...@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
pgpq4Sro1YcAL.pgp
Description: PGP signature