質問: ### 経験したこと ``` g++ -Wall -g main.cpp RBM.cpp -o RBM ``` のコマンドを用いて複数のファイルをリンクさせたのですが、 **ld: 3 duplicate symbols for architecture x86_64** のようなerror messageがでてきました。 ### 実現したいこと このerrorの原因は複数ファイルに同一のvariableを持っていたことがわかり 解消できました。 しかし、疑問がありまして、小さいファイルであったために、簡単に duplicateはわかったのですが、もっと明示的にどのvariableが duplicateしているかを知る方法、道具などはありますか? error messageを見ても解読ができないようなmessageでした。 よろしくお願いします。 ### 環境 Apple LLVM version 7.3.0 (clang-703.0.29) Target: x86_64-apple-darwin15.6.0
回答: こんにちは。 エラーメッセージにでていると思うのですが、でませんでした? 下記はfoo()が多重定義されてます。 ``` > g++ -Wall -g test.cpp sub.cpp ~\ccVvghnb.o: In function `foo()': ~\sub.cpp:4: multiple definition of `foo()' ~\test.cpp:6: first defined here collect2.exe: error: ld returned 1 exit status ```