以前写过一个关于linux下用c++写动态链接库无法通过的解决方案,今天看到《linux C程序设计-王者归来》这本书,书中有个更容易的解决方案,特此记录下来

书中使用的是c语言,我改用c++试了一下,依旧可以运行:

先来写动态库文件:

//lib.cpp
1 int add(int a,int b)
{
return a+b;
}

(*前面写过一个复杂的,这次就简单些举个例子吧*)

书中运用了导出外部函数的做法,先写了一个使用库函数的头文件

//lib.h
extern int add(int,int);

然后写调用函数的main函数

//main.cpp
#include<iostream>
#include"lib.h"
using namespace std;
int main()
{
int a=;
int b=;
int c;
c=add(a,b);
cout<<c<<endl;
return ;
}

(*注意,这里并没有包含dlfcn.h头文件,也就是并没有使用linux系统库函数来调用动态链接库)

下面就是编译方法的问题了:

对lib.cpp文件使用命令:

g++ -shared -fPIC -o lib.so lib.cpp

执行完成后会得到lib.so文件

下面这一步很重要,要对main.cpp进行编译,执行命令:

g++ main.cpp ./lib.so -o main

(*这里也不实用-ldl操作符来限定)

会自动生成main文件,你去执行一下这个文件,就会发现库函数已经被执行了,比起调用系统调用和extern “C”去消除重载要简单了很多。

(**补充**)

我对比了一下两种方式编译出来的文件(方法一参见博客同分类下的《linux下动态链接库解决方案(一)》)

aaarticlea/png;base64,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" alt="" />

上图中,代表号2的都是上一次那种方式编译出来的文件,会发现:

本次方式编译出的文件,可执行文件(main相比于main2)较小,而动态链接库文件(lib.so相比于lib2.so)则稍大

通过对比,我个人还是建议使用本次方式编译文件,虽然 编译出来的动态库文件稍大(其实大不了多少),但编译出来的可执行文件就远远小于上一次提出的方式了。

整体看来还是这种方式简单……

linux下动态链接库解决方案(二)的更多相关文章

  1. linux下动态链接库解决方案(一)

    1.c++无法直接调用用c写的动态链接库,如果调用的话可能需要用到一些交叉编译的知识: 2.在c++写的动态链接库无法被调用成功的反思: 在linux下,通常都是使用g++编译器("g++ ...

  2. linux下动态链接库.so文件 静态链接库.a文件创建及使用

    转摘网址为:http://www.cnblogs.com/fengyv/archive/2012/08/10/2631313.html Linux下文件的类型是不依赖于其后缀名的,但一般来讲:    ...

  3. Linux下动态链接库和静态链接库

    第一部分:编译过程 先了解一下linux下C代码的编译过程,C代码的编译,一般分成四个阶段,包括:预编译,编译,汇编和链接,这四个阶段的分工是 预处理过程,负责头文件展开,宏替换,条件编译的选择,删除 ...

  4. kettle工具同步数据乱码-Linux下乱码问题二

    将写好的kettle工程部署到Linux下后,同步的数据都成了乱码,幸运的是数据库有备份. 下面就说一下,kettle工程如何同步两端编码格式都是utf8的数据库. 我们只需要更改kettle数据库连 ...

  5. 一文入门Linux下gdb调试(二)

    作者:良知犹存 转载授权以及围观:欢迎添加微信号:Conscience_Remains 总述     今天我们介绍一下core dump文件,Core dump叫做核心转储,它是进程运行时在突然崩溃的 ...

  6. linux下动态链接库(.so)的显式调用和隐式调用

    进入主题前,先看看两点预备知识. 一.显式调用和隐式调用的区别 我们知道,动态库相比静态库的区别是:静态库是编译时就加载到可执行文件中的,而动态库是在程序运行时完成加载的,所以使用动态库的程序的体积要 ...

  7. LINUX下动态链接库的使用-dlopen dlsym dlclose dlerror(转)

    dlopen 基本定义 功能:打开一个动态链接库  包含头文件:  #include <dlfcn.h>  函数定义:  void * dlopen( const char * pathn ...

  8. LINUX下动态链接库的使用-dlopen dlsym dlclose dlerror

    本定义 功能:打开一个动态链接库 包含头文件: #include <dlfcn.h> 函数定义: void * dlopen( const char * pathname, int mod ...

  9. Linux下动态链接库 与gcc 选项

    -L 编译时查找动态链接库的路径 -lxxx(小写)  e.g -lcudart   = link libcudart.so  , -I(大写) 头文件的路径 -rpath (-R), 编译时指定链接 ...

随机推荐

  1. C语言与内存模型初探

    #include<stdio.h> #include<string.h> int main(){ long long int a = 2<<30; char str ...

  2. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  3. php 文件上传

    核心:bool: move_uploaded_file(file,newlocation);   //将文件保存到别的位置,如果成功返回true,

  4. Matplotlib 学习笔记

    注:该文是上了开智学堂数据科学基础班的课后做的笔记,主讲人是肖凯老师. 数据绘图 数据可视化的原则 为什么要做数据可视化? 为什么要做数据可视化?因为可视化后获取信息的效率高.为什么可视化后获取信息的 ...

  5. 利用HTML5的History API实现无刷新跳转页面初探

    HTML4中的History API history这个东西大家应该都不陌生,我们经常使用history.back(-1)来实现后退功能,具体的属性和方法如下: 属性 length 历史的项数.Jav ...

  6. Configure Security Settings for Remote Desktop(RDP) Services Connections

    catalogue . Configure Server Authentication and Encryption Levels . Configure Network Level Authenti ...

  7. gcc 编译时 include 搜索路径

    这是一个不复杂的问题:但是网上很多回答都不全面:偶找了一个比较全面的(测试过): 引用http://blog.csdn.net/fjb2080/archive/2010/01/23/5247494.a ...

  8. RabbitMQ 消息确认机制

    消息确认机制 在之前异常处理部分就已经写了,对于consumer的异常退出导致消息丢失,可以时候consumer的消息确认机制.重复的就不说了,这里说一些不一样的. consumer的消息确认机制 当 ...

  9. Alpha阶段发布说明

    Alpha版本功能介绍 机器法官功能已实现 这是我们统计了当下所有存在的狼人APP的共同缺点.也是用户最主要的痛点.现在所有已知存在的类似APP都不能提供法官功能,我们的APP将该功能革命性的自动实现 ...

  10. 业务中是否有必要让所有的ViewController统一继承抽象类

    疑问来自:这里 1.事出有因 其中博主说道的情况我其实也经历过,当时还在找到一个模式可以改变这样的情况.直到有一天看到这个博客,今天晚上有时间来规整一下博主的思路和写了一个测试代码. 这是我目前的Ap ...