C++ 使用创建的DLL文件(从应用程序调用函数)
我有一个愚蠢的问题。我有三个C文件:f1.cf2.cf3.C,其中包含:C++ 使用创建的DLL文件(从应用程序调用函数),c++,c,dll,C++,C,Dll,我有一个愚蠢的问题。我有三个C文件:f1.cf2.cf3.C,其中包含: // f1.c int f1() { return 2; } // f2.c int f2() { return 4; } // f3.c int f3() { return 10; } 当我运行以下命令(我在windows7下使用mingc)时,我已经有3个对象文件: 我创建了dll文件: gcc f1.o f2.o f3.o -o test1.dll -shared 使用DLL导出查看器
// f1.c
int f1()
{
return 2;
}
// f2.c
int f2()
{
return 4;
}
// f3.c
int f3()
{
return 10;
}
当我运行以下命令(我在windows7下使用mingc)时,我已经有3个对象文件:
我创建了dll文件:
gcc f1.o f2.o f3.o -o test1.dll -shared
使用DLL导出查看器,我已打开此文件:
如何在我的应用程序(跨平台)中使用此文件?如何调用functrion f1、f2、f3
对不起,我英语不好
假设您有了头文件,唯一缺少的就是一个归档文件,链接器需要它来确定DLL提供了什么 更改此项: gcc f1.o f2.o f3.o -o test1.dll -shared gcc f1.o f2.o f3.o-o test1.dll-共享 为此: gcc f1.o f2.o f3.o -o test1.dll -shared -Wl,--out-implib,libtest1.a gcc f1.o f2.o f3.o-o test1.dll-shared-Wl,--out implib,libtest1.a 然后,要链接到共享库,将
-ltest1
传递到gcc
您仍然需要为每个平台和体系结构(x86、AMD64、IA64等)重新编译库。例如,Windows使用DLL,但Linux使用共享对象
有关更多信息,请参阅。跨平台?(你是说像windows和linux这样的跨平台吗?)你必须在不同的平台上重新编译该平台的get-lib。你能告诉我在哪里可以看到一个示例吗?这个过程将在你的编译器文档中描述。步骤2始终特定于编译器,步骤3特定于平台。 gcc f1.o f2.o f3.o -o test1.dll -shared -Wl,--out-implib,libtest1.a