我有一个虚拟问题。我有三个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 Export Viewer 我打开了这个文件:
如何在我的应用程序中使用此文件(跨平台)?我如何调用函数 f1, f2, f3 ?
抱歉我的英语不好
最佳答案
假设您有 header ,那么您唯一缺少的是 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了解更多信息。
关于c++ - 使用创建的 DLL 文件(从应用程序调用函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359101/