У меня есть файл 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
Какая из приведенных выше команд верна?
Пожалуйста помоги
Файл, содержащий ваши main
Функция не должна быть общей библиотекой. Это точка входа для приложения, поэтому она должна быть связана как исполняемый файл.
gcc -x c++ -I. -L. -o main main.c -lCmodel
Других решений пока нет …