在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
選項在鏈接時指定庫文件。