Gcc 如何在linux中链接.lib库

Gcc 如何在linux中链接.lib库,gcc,Gcc,我对c编程相当陌生,希望将windows c应用程序移植到linux。我的代码使用一个.lib文件va_g729.lib——是否可以在Linux中使用同一个库并用gcc编译它 我所有的.c和.h文件以及一个.lib文件都在同一个目录中。我现在要做的是在目录中执行以下命令: gcc *.c -lm 我得到了以下错误: lbcodec2.c:(.text+0xa6b): undefined reference to `va_g729a_init_encoder' lbcodec2.c:(.text

我对c编程相当陌生,希望将windows c应用程序移植到linux。我的代码使用一个.lib文件
va_g729.lib
——是否可以在Linux中使用同一个库并用gcc编译它

我所有的
.c
.h
文件以及一个
.lib
文件都在同一个目录中。我现在要做的是在目录中执行以下命令:

gcc *.c -lm
我得到了以下错误:

lbcodec2.c:(.text+0xa6b): undefined reference to `va_g729a_init_encoder'
lbcodec2.c:(.text+0xa83): undefined reference to `va_g729a_encoder'
collect2: error: ld returned 1 exit status
是否可以链接
.lib
文件并使用gcc编译

谢谢

gcc *.c -lm -lYourFile.lib -o yourExecutable

您可能需要显式链接.lib文件。

似乎我们无法编译
.lib
文件。我必须从源代码为linux编译一个
.a
文件。

.lib
文件在我的工作目录中,gcc找不到它。我试图用:gcc*.c-lm-lva_g729.lib-L/home/shantanu/workspace/ConverterTest/src明确提到路径,但gcc仍然找不到并说:/usr/bin/ld:cannot find-lva_g729.lib collect2:error:ld返回了1个退出状态
lib
文件似乎是特定于Windows的。在Linux上,静态库是
.a
,共享库是
。或者我错了。