我有文件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.4
和libBmodelso.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
上述哪一条命令是正确的? 请帮忙
答案 0 :(得分:0)
包含main
函数的文件不应该是共享库。它是应用程序的入口点,因此它应该作为可执行文件链接。
gcc -x c++ -I. -L. -o main main.c -lCmodel