linux静的ライブラリと共有ライブラリのコンパイル

600 ワード

2つのベクトル操作のCファイルaddvecがある場合.cとmultvec.c.
静的ライブラリにコンパイルするには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  //