在C++中,生成动态链接库(也称为共享库或DLL)的方法取决于你使用的编译器和操作系统
mylib.cpp
的文件,其中包含以下内容:#include<iostream>
extern "C" {
__declspec(dllexport) void sayHello() {
std::cout << "Hello from dynamic library!"<< std::endl;
}
}
注意,我们使用了extern "C"
来避免C++的名称修饰,这样可以确保导出的函数名在其他语言中更容易使用。同时,我们使用了__declspec(dllexport)
来指示编译器将此函数导出到动态链接库中。
cl.exe
)将源代码编译为动态链接库。以下是使用命令行工具的示例:cl /LD mylib.cpp /o mylib.dll
这将生成一个名为mylib.dll
的动态链接库。
main.cpp
的文件,其中包含以下内容:extern "C" void sayHello();
int main() {
sayHello();
return 0;
}
然后,使用以下命令编译并链接main.cpp
:
cl main.cpp /link /DEFAULTLIB:mylib.lib
注意,我们需要指定/DEFAULTLIB:mylib.lib
选项,以便链接器找到mylib.dll
中的导出函数。
mylib.dll
位于可执行文件的搜索路径中,然后运行程序。你应该会看到来自动态链接库的输出。请注意,这些步骤特定于Windows和Microsoft Visual Studio。在其他操作系统和编译器上,过程可能略有不同。例如,在Linux上,你可能需要使用g++
编译器和-shared
选项来创建共享库,并使用-L
和-l
选项在链接时指定库文件。