我有一个虚假的问题。我有三个C文件:f1.c f2.c f3.c,其中包含:
// f1.c
int f1()
{
return 2;
}
// f2.c
int f2()
{
return 4;
}
// f3.c
int f3()
{
return 10;
}
我已经有3个目标文件,当我运行以下命令时(我在windows7下使用mingc):
gcc -c f1.c f2.c f3.c
我创建了dll文件:
gcc f1.o f2.o f3.o -o test1.dll -shared
使用DLL导出查看器我打开了这个文件:
如何在我的应用程序中使用此文件(跨平台)?我如何调用functrion f1,f2,f3?
抱歉我的英文不好
答案 0 :(得分:2)
假设你有标题,你唯一缺少的是A档案,链接器需要它来弄清楚DLL提供了什么。
改变这个:
gcc f1.o f2.o f3.o -o test1.dll -shared
对此:
gcc f1.o f2.o f3.o -o test1.dll -shared -Wl,--out-implib,libtest1.a
然后,要与共享库关联,请将-ltest1
传递给gcc
。
您仍需要为每个平台和体系结构(x86,AMD64,IA64等)重新编译库。 Windows使用DLL,但Linux使用共享对象,例如。
有关详细信息,请参阅http://www.mingw.org/wiki/sampleDLL。
答案 1 :(得分:1)