35

で定義されている関数をmain.cpp使用するファイルがあるとします。また、同じディレクトリでlibmath.aとlibmath.soの両方を使用できるとします。ここでコマンドを発行すると、Linuxのデフォルトの動作は共有ライブラリにリンクすることです。共有ライブラリを削除または移動せずに、プログラムを静的ライブラリに強制的にリンクさせる方法はありますか?sin()libmathg++ -o main main.cpp -lmathlibmath.solibmath.a

4

3 に答える 3

30

-static をリンカーに渡す必要がありますが、必要な特定のライブラリに対してのみです。例えば:

g++ -o main main.cpp -Wl,-Bstatic -lmath -Wl,-Bdynamic
于 2010-12-21T14:17:32.003 に答える
13

リンカーがサポートしている-l:<filename>場合は、次を使用できます。

g++ -o main main.cpp -l:libmath.a
于 2010-12-21T14:39:55.323 に答える
5

この関数を使用します。

g++ -o main main.cpp /path_to/libmath.a
于 2010-12-21T14:20:22.990 に答える