阅读量:0
在C++中,编译动态库(共享库)的方法取决于你使用的操作系统和编译器
- Linux/Unix/macOS 上使用 GCC/G++
创建一个名为 mylib.cpp
的源文件:
#include "mylib.h" int add(int a, int b) { return a + b; }
创建一个名为 mylib.h
的头文件:
#ifndef MYLIB_H #define MYLIB_H int add(int a, int b); #endif // MYLIB_H
使用以下命令编译动态库:
g++ -shared -fPIC -o libmylib.so mylib.cpp
这将生成一个名为 libmylib.so
的共享库文件。
- Windows 上使用 MSVC
创建一个名为 mylib.cpp
的源文件:
#include "mylib.h" __declspec(dllexport) int add(int a, int b) { return a + b; }
创建一个名为 mylib.h
的头文件:
#ifndef MYLIB_H #define MYLIB_H __declspec(dllimport) int add(int a, int b); #endif // MYLIB_H
使用以下命令编译动态库:
cl /LD mylib.cpp
这将生成一个名为 mylib.dll
的动态链接库文件。
注意:在实际项目中,你可能需要处理更复杂的依赖关系、编译选项和平台特定功能。在这种情况下,建议使用构建系统(如 CMake、Meson 或 Bazel)来管理编译过程。