まず、リンカー/ライブラリの下にライブラリを設定するか、「パスとシンボル」の下にライブラリを設定すると、混乱します。同じだと思います。私は正しいですか?
私の質問のためにとにかく-私は静的ライブラリをリンクする必要があるので、私はいくつかのことを試しました:
まず、リンクライブラリにgtest(これはライブラリです)とgtestパスを追加してみます。このようにして、コンパイルおよびリンクは正しく行われましたが、実行時に失敗しました。これは、共有ライブラリをロードしようとしたときに(静的ライブラリが必要です!)エラーが発生する ためです。
共有ライブラリのロード中にエラーが発生しました:libgtest.so.0
2回目の試行-パスとシンボルで定義して、完全なパス'/root/workspace/gmock/gtest/lib/.lib/libgtest.a'をライブラリに追加してみます。この場合、リンケージでエラーが発生しました:
g++ -L/root/workspace/gmock/lib/.libs -L/root/workspace/gmock/gtest/lib/.libs -o "playground" ./src/p.o ./src/playground.o -lpthread -l/root/workspace/gmock/gtest/lib/.lib/libgtest.a -l/root/workspace/gmock/lib/.lib/libgmock.a
/usr/bin/ld: cannot find -l/root/workspace/gmock/gtest/lib/.lib/libgtest.a
この投稿は答えを与えるものではなく、静的なものと共有されたものに対して異なるリンクを定義する方法を説明していません。
ありがとうございました