正在生成 .so 文件

Generating .so file

本文关键字:so 文件      更新时间:2023-10-16

我有文件main.c,我想创建main.so

main.c取决于libCmodel.so文件。

main.c看起来像

#include <stdio.h>
#include "Cmodel.h" // Must include before Amodel and Bmodel
#include "Amodel.h"
#include "Bmodel.h"
int main(){
..
return 0;
}

可以看出,libCmodel.so文件取决于libAmodel.so.4libBmodelso.11.所有"*.so"文件都与main.c位于同一目录中

我使用以下命令生成对象文件

gcc -x c++ -fPIC main.c -o main.o -c -I.

我看到生成了main.o。 但是,我不确定我是否使用了正确的命令。上面的命令正确吗?

然后,我尝试了以下逗号来生成 main.so,

g++ -shared -o main.so main.o -L. -lCmodel
g++ -shared -o main.so main.o -L. -lCmodel -lAmodel -lBmodel
g++ -shared -o main.so main.o -L. -lCmodel -lAmodel.4 -lBmodel.11
g++ -shared -o main.so main.o -L. -lCmodel -lAmodel.so.4 -lBmodel.so.11

以上哪一个命令是正确的? 请帮忙

包含main函数的文件不应是共享库。 它是应用程序的入口点,因此应将其链接为可执行文件。

gcc -x c++ -I. -L. -o main main.c -lCmodel