如何从 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。