如何从 C 程序创建共享库?
How to create a shared library out of a C program?
我正在尝试从我的 C 程序中创建一个共享库。我怎么做?
我认为您需要该程序,所以它是:
#include "defs.h"
#include "externs.h"
int CheckPrime(int K){
int J;
J = 2;
while (1) {
if (Prime[J] == 1)
if (K % J == 0) {
Prime[K] = 0;
return 0;
}
J++;
break;
}
Prime[K] = 1;
}
我也做了一个Makefile,可以在里面做吗?:
# -----------------------------------
# ------ executable rule -----------
# -----------------------------------
app : app.o
-gcc -g app.o -o app
# ---------------------------------------------------
# ------ intermeditate object files rule (.o) -------
# ---------------------------------------------------
app.o : main.c
-gcc -g -c main.c -o app.o
是的,只需将 -shared
标志添加到 gcc。
gcc -g -shared app.o -o libapp.so
你也可以使用soname
选项来控制版本控制,例如
gcc -g -shared -Wl,-soname,libapp.1.0.0.so app.o -o libapp.so
表示它是版本 1.0.0 API。
我正在尝试从我的 C 程序中创建一个共享库。我怎么做? 我认为您需要该程序,所以它是:
#include "defs.h"
#include "externs.h"
int CheckPrime(int K){
int J;
J = 2;
while (1) {
if (Prime[J] == 1)
if (K % J == 0) {
Prime[K] = 0;
return 0;
}
J++;
break;
}
Prime[K] = 1;
}
我也做了一个Makefile,可以在里面做吗?:
# -----------------------------------
# ------ executable rule -----------
# -----------------------------------
app : app.o
-gcc -g app.o -o app
# ---------------------------------------------------
# ------ intermeditate object files rule (.o) -------
# ---------------------------------------------------
app.o : main.c
-gcc -g -c main.c -o app.o
是的,只需将 -shared
标志添加到 gcc。
gcc -g -shared app.o -o libapp.so
你也可以使用soname
选项来控制版本控制,例如
gcc -g -shared -Wl,-soname,libapp.1.0.0.so app.o -o libapp.so
表示它是版本 1.0.0 API。