编译C++为动态链接库(DLL - Dynamic Link Library)或共享对象(SO - Shared Object)是将C++代码打包为可供其他程序调用的可
1.使用 g++ 编译 SO(Linux)
-
编写 C++ 代码: 创建你的 C++ 源文件,例如
mylibrary.cpp
。// mylibrary.cpp #include <iostream> extern "C" { void myFunction() { std::cout << "Hello from C++ function!" << std::endl; } }
-
编写编译脚本: 创建一个编译脚本,例如
compile.sh
。#!/bin/bash g++ -shared -fPIC -o mylibrary.so mylibrary.cpp
这个脚本使用
-shared
标志告诉编译器生成一个共享对象,-fPIC
表示编译为位置独立的代码,-o
指定输出文件名。 -
运行编译脚本: 在终端中运行编译脚本。
chmod +x compile.sh ./compile.sh
这将生成名为
mylibrary.so
的共享对象文件。
2.使用 Visual Studio 编译 DLL(Windows)
-
编写 C++ 代码: 创建你的 C++ 源文件,例如
mylibrary.cpp
。// mylibrary.cpp #include <iostream> extern "C" { __declspec(dllexport) void myFunction() { std::cout << "Hello from C++ function!" << std::endl; } }
注意,在 Windows 中,
__declspec(dllexport)
用于指定函数将被导出。 -
使用 Visual Studio: 打开 Visual Studio,创建一个新的 DLL 项目,将你的源文件添加到项目中。
-
配置项目属性: 在项目属性中,确保配置正确,特别是在“生成”选项卡中的“配置类型”应选择“动态库 (.dll)”。
-
生成项目: 编译并生成项目。
这将生成名为
mylibrary.dll
的 DLL 文件。
在实际应用中,你可能需要更复杂的构建系统、依赖项管理和其他配置。这里提供的步骤是基本的指导,你可能需要根据你的具体需求进行适当调整。