linux静的ライブラリと共有ライブラリのコンパイル
600 ワード
2つのベクトル操作のCファイルaddvecがある場合.cとmultvec.c.
静的ライブラリにコンパイルするにはaは、まず、2つのCファイルを前処理してコンパイルし、アセンブリして再配置可能なターゲットファイル(.o)を取得し、ARツールを使用して静的ライブラリ(.a)にコンパイルします.
動的ライブラリ、すなわち共有ターゲットファイル(.so)にコンパイルするには、-sharedオプションを使用してリンクに共有ターゲットファイルを作成し、-fpicオプションはコンパイラが生成する場所に関係のないコードを示します.
静的ライブラリにコンパイルするにはaは、まず、2つのCファイルを前処理してコンパイルし、アセンブリして再配置可能なターゲットファイル(.o)を取得し、ARツールを使用して静的ライブラリ(.a)にコンパイルします.
gcc -c addvec.c multvec.c // .o
ar rcs libvector.a addvec.o multvec.o // .a
gcc -c main.c
gcc -static -o main main.o ./libvector.a //
動的ライブラリ、すなわち共有ターゲットファイル(.so)にコンパイルするには、-sharedオプションを使用してリンクに共有ターゲットファイルを作成し、-fpicオプションはコンパイラが生成する場所に関係のないコードを示します.
gcc -shared -fpic -o libvector.so addvec.c multvec.c // (.so)
gcc -o main main.c ./libvector.so //