GCCでABIを変更する前にgcc 4.8でコンパイルしたライブラリをダウンロードしました。古いABIを使用してGCC 5でブーストをコンパイルするには?
私のノートパソコン(最新のkubuntu)には、GCC 5.2があります。私はブーストをインストールしたときに、私が古いABIを使用してブーストをインストールするにはどうすればよい
....それは新しいABIを使用したが、その後、私は、次のリンクエラー
未定義シンボル.....__ cxx11を取得しているようですGCC5とは?
GCCでABIを変更する前にgcc 4.8でコンパイルしたライブラリをダウンロードしました。古いABIを使用してGCC 5でブーストをコンパイルするには?
私のノートパソコン(最新のkubuntu)には、GCC 5.2があります。私はブーストをインストールしたときに、私が古いABIを使用してブーストをインストールするにはどうすればよい
....それは新しいABIを使用したが、その後、私は、次のリンクエラー
未定義シンボル.....__ cxx11を取得しているようですGCC5とは?
私の知る限り、公式のKubuntuリポジトリには古いABI用の事前構築されたBoostパッケージはありませんので、Boostを自分で構築する必要があります。構築プロセスは文書番号hereです。
ライブラリの作成時に使用したものと同じBoostバージョンを作成していることを確認してください。 Boost設定マクロが定義されている場合は、同様にそれらを定義する必要があります。そうしないと、ライブラリとBoostとの間にABIの非互換性が生じることがあります。
libstdC++を古いABIに切り替えるには、hereのように、_GLIBCXX_USE_CXX11_ABI
を0に定義する必要があります。例:
b2 -j8 variant=release define=_GLIBCXX_USE_CXX11_ABI=0 stage
また、Boostとライブラリを使用する独自のコードを作成するときにマクロを定義する必要があります。
正解ありがとうございます。 "define"は私が探していた設定オプションでした。他のオプションが必要な人にこのリンクを追加したいと思います。 http://www.boost.org/build/doc/html/bbv2/overview/invocation.html –