(我在 Windows 上。)
我正在用一个看起来像这样的 C 程序测试我编译的 DLL ( libsox ):
#include <stdio.h>
#include "sox.h"
int main(void) {
char const * versionText = sox_version();
printf(versionText);
return 0;
}
DLL 中定义的函数具有以下原型sox.h
(其中包含cdecl
):
LSX_RETURN_VALID_Z LSX_RETURN_PURE
char const *
LSX_API
sox_version(void);
这是问题所在:当我尝试使用构建文件时gcc -lsox -o test.exe test.c
出现以下错误:
C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\ccSS2h2z.o:test.c:(.text+0xf): undefined reference to `sox_version'
collect2: ld returned 1 exit status
一句话:我在 MinGW 的文件夹-lsox
中有库文件“libsox.dll.a” 。lib
如果我写-lsoxnonsense
,那么它说没有图书馆。这意味着在所示情况下它会找到库。那么它为什么不想创建一个链接。