linuxでgccでスタティックリンクライブラリとダイナミックリンクライブラリを作成します.


前の記事では、Windowsで静的リンクライブラリとダイナミックリンクライブラリの作成方法を紹介しています.http://blog.csdn.net/love_cppandc/article/details/8502773)この記事では、linuxで静的リンクライブラリと動的リンクライブラリの作成方法を紹介します.
Linuxでは、静的ライブラリファイルは.o末尾、ダイナミックライブラリファイルは.so末尾です.
1.スタティックリンクライブラリ
まず3つのファイルを作成します.static.h static.c test.c
static.
int add( int a, int b )
{
	return a + b;
}
static.h
#ifndef LIB_H
#define LIB_H

int add(int a,int b);

#endif
test.
#include <stdio.h>
#include "static.h"

int main()
{
	printf( "%d
", add(1,2) ); return 0; }
コマンドは以下の通りです
ヽoo.ツ
このステップはstatic.oファイルを作成します.
同前 ar cr libstatic.a static.o
このステップは静的リンクライブラリを生成するために、特に注意しなければならないのはライブラリの名前はlibで始まる必要があります.これは必須です.
同前 gcc-o test.c-L.-lstatic
このステップは、テストファイルのtestとstaticライブラリをリンクし、-L.のリストを表します.
ヽoo.ツ
結果は3です
2.ダイナミックリンクライブラリ
三つのファイルを作成します.dynamic.cdynamic.h test.c
dynamic.
int add( int a,int b )
{
	return a + b;
}
dynamic.h
#ifndef DYNAMIC
#define DYNAMIC

int add( int a,int b);

#endif
test.
#include <stdio.h>
#include "dynamic.h"

int main()
{
	printf( "%d
",add(1,2) ); return 0; }
コマンドは以下の通りです
𞃳gcc-c dynamic.
このステップはdynamic.soファイルを生成します.
同前 gcc-shared-fPCI-o libdynamic.so dynamic.so
このステップはダイナミックリンクライブラリの生成です.
同前 gcc-o test.c-L.-ldynamic
このステップはdynamicライブラリとテストファイルtestをリンクします.
ヽoo.ツ
結果は3です
まとめ:スタティックリンクライブラリの呼び出しとダイナミックリンクライブラリのgccコマンドは全く同じであり、同じ名前のスタティックライブラリとダイナミックライブラリがある場合にはダイナミックライブラリを優先的に呼び出すことができることを確認しました.
作者:Love_CppAndCは2016-13-15 23:53:56原文のリンクを発表しました.
コメント:0