Я пытаюсь скомпилировать файл .so из файла .a, файла .h и исходного файла
.cpp
.so-output, общая библиотека
.a-статическая библиотека для использования
.h-заголовочного файла для API
.cpp-исходного файла
/ include - заголовки пакета разработчика Python
Когда я впервые попробовал
gcc -fPIC pyOkHound.cpp -L ./PhraseSpotterAPI.h ./libPhraseSpotter.a -shared -o OkHound.so
gcc throws pyOkHound.cpp: 4: 20: фатальная ошибка: Python.h: компиляция такого файла или каталога не прекращена.что имеет смысл, потому что мой исходный файл нуждается в Python.h
Затем, когда я включаю библиотеку Python
gcc -fPIC pyOkHound.cpp -L ./include/*.* ./PhraseSpotterAPI.h ./libPhraseSpotter.a -shared -o OkHound.so
, он выдает gcc: fatal error: невозможно указать -o с -c, -Sили -E, если компиляция нескольких файлов прекращена.Я попытался -l и -L, чтобы включить заголовочные файлы из Python Dev, но он выдает то же самое.Однако я не думаю, что -include является правильным для использования, поскольку заголовочный файл предназначен для API, а не исходного кода.
как включить несколько заголовочных файлов во время компиляции для общего объекта?Здесь также следует флаг -I https://www.rapidtables.com/code/linux/gcc/gcc-i.html
gcc -c -fPIC pyOkHound.cpp -I./include -shared -o OkHound.so