2016-03-23 4 views
0

編集:私はgcc 5.2.1を使用していますので、明らかに新しいlibstdC++ライブラリABIがデフォルトで選択されています。私はの.ccファイルの先頭に以下の行を追加しようgcc 5.2.1 _GLIBCXX_USE_CXX11_ABI

/tmp/ccVIU5fG.o: In function `main': 
2D_interpolations.cc:(.text+0x76): undefined reference to `mio::Config::Config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' 
2D_interpolations.cc:(.text+0x151): undefined reference to `mio::IOUtils::convertString(mio::Date&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double const&, std::ios_base& (*)(std::ios_base&))' 

:それはImは私のコードをコンパイルしようとしたとき(のstd :: __ cxx11に関連した)このエラーメッセージにつながる問題がある可能性があります

#define _GLIBCXX_USE_CXX11_ABI 0 

そして、私はコンパイルすることができました。しかし、未定義のシンボルに関連するエラーが発生しました。

を使用することにより、未定義のシンボルが実際に私が他の未定義かどうかをチェックすることによりの#define _GLIBCXX_USE_CXX11_ABI 0

mio::Config::Config(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) 

を追加する前にエラーを得たところと全く同じ場所で未定義たことが判明しましたシンボルが存在するかどうか、私はそこにも欠けていると思った(以前のエラーでも)

私はすでにいくつかの同様の投稿があることを知っていますが、私がC++を初めて使ったときから、答えはあまりにも「理論的」だったので、コンピュータでは何も知りませんでした...助けてくれる提案があれば、

ありがとうございます!

+0

@zenithが指摘しているように、これは複製です。元の質問に対する回答を見るときは、_GLIBCXX_USE_CXX11_ABIを参照するものに特に注意してください(gcc 5.1以降を使用している場合) – lobudge

+0

おかげさまで@lobudge!主題についてのいくつかの調査の後、私の場合、gccバージョン5.2.1を使用しているので、それは関連しているようです。 しかし、それを修正する方法はわかりません...私が読んだすべての関連する答えはかなり理論的であり、実際にはコンピュータエンジニアではありませんでした!私は検索を続けますが、もしあなたが何か提案があれば教えてください! – Pauline

答えて

0

が、私はここに、最終的にはすべてのものを修正するために、それは私が私のコードを使用していますライブラリた確認するには、誰か

て興味のある場合の解決策をそうイムの投稿を管理し、私は

ldd -r -d <name of my code file> 

コマンドを使用しましたイムlibにサードパーティが正しくパス

/usr/local/lib/<name of the library file> 

によって検出された使用してしかし、それは認識していても、(なぜ私に聞かないでください)、明らかに良いパスではありません。良い選択肢の1つは、ライブラリファイルを別の場所に変更することです:

/usr/lib/<name of the library file> 

今は完璧に動作します!