我正在尝试从.a文件和.h文件以及源文件中编译.so文件 .cpp
.so-output,共享库
.a-static库使用
API的.h-header文件
.cpp-source file
/ include - Python开发包标题
当我第一次尝试时
gcc -fPIC pyOkHound.cpp -L ./PhraseSpotterAPI.h ./libPhraseSpotter.a -shared -o OkHound.so
gcc抛出pyOkHound.cpp:4:20:致命错误:Python.h:没有这样的文件或目录 编译终止。 这是有道理的,因为我的源文件需要Python.h
然后当我包含python lib
gcc -fPIC pyOkHound.cpp -L ./include/*.* ./PhraseSpotterAPI.h ./libPhraseSpotter.a -shared -o OkHound.so
它扔了
gcc:致命错误:无法使用多个文件指定-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