G-简单的编译生成动态链接文件

发布于 2024-09-01 12:21:36 字数 945 浏览 10 评论 0

一个最简单的动态链接库程序,使用 g++命令行编译。便于回忆,就把它记到 Blog 中。

动态库建立

编译成 obj 文件:

g++ -c -o dll.obj dll.cpp

链接 obj,生成 dll:

g++ -shared -o dll.so dll.obj

/* file: dll.h */ 
#ifndef __dll_h__
#define __dll_h__
#ifdef __MY_DLL_LIB__
    #define DLL_EXPORT extern "C" __declspec(dllexport)
#else     
    #define DLL_EXPORT extern "C" __declspec(dllimport)
#endif

DLL_EXPORT int mymax(int x, int y);
#endif
/* file: dll.cpp */ 
#define __MY_DLL_LIB__
#include "dll.h"
int mymax(int x, int y)
{
    return x > y ? x : y;
}

动态库调用

调用动态库: 直接编译成 exe:

g++ main.cpp dll.so -o main.exe

/* file: main.cpp */ 
#include "dll.h"
#include <iostream>
using namespace std;
int main()
{
    int a = 2;
    int b = 4;
    cout << mymax(a, b) << endl;
    
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

于我来说

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

謌踐踏愛綪

文章 0 评论 0

开始看清了

文章 0 评论 0

高速公鹿

文章 0 评论 0

alipaysp_PLnULTzf66

文章 0 评论 0

热情消退

文章 0 评论 0

白色月光

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文