libmath
で定義されているsin()
関数を使用するファイルmain.cpp
があるとします。また、libmath.aとlibmath.soの両方が同じディレクトリにあると仮定します。ここで、コマンドg++ -o main main.cpp -lmath
を発行すると、Linuxのデフォルトの動作は、共有ライブラリlibmath.so
にリンクすることです。共有ライブラリを削除または移動せずにプログラムに静的ライブラリlibmath.a
とリンクさせる方法はありますか?
-staticをリンカーに渡す必要がありますが、必要なのは特定のライブラリのみです。例えば。:
g++ -o main main.cpp -Wl,-Bstatic -lmath -Wl,-Bdynamic
リンカが-l:<filename>
をサポートしている場合、以下を使用できます。
g++ -o main main.cpp -l:libmath.a
この関数を使用します。
g++ -o main main.cpp /path_to/libmath.a