所以,我有 TVZLib.h、TVZlib.dll 和 TVZlib.lib,我正在使用 gcc 编译以下程序(这是一个简单的测试用例)。编译器给了我错误:
"undefined reference to '_imp__TVZGetNavigationMatrix'"
然而。当我为函数调用使用不同类型的参数完成程序时,它抱怨它不是正确的参数(需要 *float)。对我来说,这意味着它至少找到了功能,因为它知道自己想要什么。
根据我的研究,我可以看出人们认为这与库的链接或我链接的顺序有关,但我已经尝试了所有组合的所有 gcc 命令,并且都给了我同样的错误,所以我迫切需要一些帮助。
#include <stdlib.h>
#include <stdio.h>
#include "TVZLib.h"
int main() {
float floatie = 2;
float *ptr = &floatie;
TVZGetNavigationMatrix(ptr);
getchar();
return 0;
}
提前非常感谢!
我的编译器命令:
gcc dlltest.c -L. TVZLib.lib
直接输出:
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccuDpoiE.o:dlltest.c:(.text+0x2c): undefined reference to `_imp__TVZGetNavigationMatrix'
collect2: ld returned 1 exit status