zoukankan      html  css  js  c++  java
  • [转]用g++编译动态链接库

     

      写了一个最简单的动态链接库程序,使用g++命令行编译。怕以后忘记,就把它记到blog中。
    动态库导出头文件:
    /**
      * file: dll.h
      * Powered by JGood 2009-09-22
      */

    #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 jmax(int x, int y);

    #endif
    动态库实现:
    编译成obj文件:g++ -c -o dll.obj dll.cpp
    链接obj,生成dll: g++ -shared -o dll.so dll.obj
    /**
      * file: dll.cpp
      * Powered by JGood 2009-09-22
      */

    #define __MY_DLL_LIB__
    #include "dll.h"

    int jmax(int x, int y)
    {
        return x > y ? x : y;
    }


    调用动态库:
    直接编译成exe: g++ main.cpp dll.so -o main.exe
    /**
      * file: main.cpp
      * Powered by JGood 2009-09-22
      */

    #include "dll.h"
    #include <iostream>

    using namespace std;

    int main()
    {
        int a = 20;
        int b = 40;
        cout << jmax(a, b) << endl;

        return 0;

  • 相关阅读:
    leetcode643.滑动窗口例题
    BZOJ4195 离散化+并查集
    luogu线性表刷题
    2021-5-29 周报博客
    2021-5-28 日报博客
    2021-5-27 日报博客
    2021-5-26 日报博客
    2021-5-25 日报博客
    2021-5-24 日报博客
    梦断代码阅读笔记之二
  • 原文地址:https://www.cnblogs.com/foxhengxing/p/1894736.html
Copyright © 2011-2022 走看看