我正在尝试使用GCC在Ubuntu上编译DLL(.so)文件。该库有一个依赖项,它是一个静态库,我可以用GCC编译。我使用以下命令行并产生以下错误:
gcc -shared -Bstatic -gpclib.a -fPIC gpcdll.h gpcdll.c
输出:
cc1:错误:无法识别的调试输出级别'pclib.a'
cc1:错误:无法识别的调试输出级别'pclib.a'
我尝试使用谷歌搜索此错误但没有成功。
更新
我根据建议试图运行以下内容:
gcc -shared -Bstatic -lgpclib.a -fPIC gpcdll.h gpcdll.c
结果:
gpcdll.c:19:17:致命错误:gpc.h:没有这样的文件或目录 #include" gpc.h" ^ 这对我来说很有意义,因为我的静态库叫做gpclib.a而不是lgpclib.a
更新#3:我尝试使用-g运行以获取更多调试信息,但只获得了之前生成的信息。
更新#4:gcc -shared -lgpc -gpclib.a -fPIC gpcdll.h gpcdll.c产生相同的错误消息。
更新#5:我试过了:
gcc -shared -Wl,-Bstatic -L.\ -lgpclib.a -fPIC gpcdll.h gpcdll.c
应该将当前工作目录指定为搜索路径,但它仍然说:
gpcdll.c:19:17:致命错误:gpc.h:没有这样的文件或目录
更新#6:所以我终于感到沮丧并从静态库中删除了所有代码(gpc.h和gpc.c)并将它们放在与gpcdll.h gpcdll.c相同的目录中并且能够编译,但我觉得你应该能够链接一个包含该代码的静态库,它必须是我所缺少的简单。