gcc как включить несколько заголовочных файлов во время компиляции для общего объекта - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь скомпилировать файл .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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...