首页主机资讯c++如何编译动态库

c++如何编译动态库

时间2024-09-05 23:16:04发布访客分类主机资讯浏览1213
导读:在C++中,编译动态库(共享库)的方法取决于你使用的操作系统和编译器 Linux/Unix/macOS 上使用 GCC/G++ 创建一个名为 mylib.cpp 的源文件: #include "mylib.h" int add(int...

在C++中,编译动态库(共享库)的方法取决于你使用的操作系统和编译器

  1. 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 的共享库文件。

  1. 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)来管理编译过程。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c++如何编译动态库
本文地址: https://pptw.com/jishu/697694.html
c++如何实现反射 c++ string如何删除指定字符

游客 回复需填写必要信息