[转]用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;

转载于:https://www.cnblogs.com/foxhengxing/archive/2010/12/02/1894736.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux传奇源码,游戏源码 屠龙传奇H5 鲲乃异兽 全套源码+教程

一、游戏的要求系统要求系统要求liunx6.9系统 因为游戏是java对服务器配置要求比较高如果您的资金够宽裕可以选择直接购买 liunx6.9系统 8核16G 240G/320G硬盘 10兆以上宽带的服务器 这样可以直接保证游戏的稳定性如果不想出那么多钱 可以一步一步来开新区用4核4G 1…

javascript setTimeout 和 setInterval 区别

[setTimeout]setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数 是一次用setTimeout实现的自动变化显示随机数的效果:<html><head><script>window.οnlοadsett;function sett(){document.body.innerHTMLMath.rando…

如何量化考核软件开发人员绩效

为什么80%的码农都做不了架构师&#xff1f;>>> 1、首先有技术积累的前提下&#xff0c;能比较正确的估量项目成本和项目组生产率 2、设立项目组短期目标、中期、长期目标&#xff08;这个因项目具体情况而已&#xff0c;有些项目都是很小的&#xff0c;甚至2个星期…

linux创建自定义组件qt,关于QT自定义控件

Linux中I/O设备分为两类&#xff1a;块设备和字符设备。两种设备本身没有严格限制&#xff0c;但是&#xff0c;基于不同的功能进行了分类。用户自定义的控件可以通过继承现有的 Qt 控件实现&#xff0c;也可以直接从 QWidget 继承。QT中的label控件&#xff0c;没有预定义的单…

jQuery三级下拉菜单

演示地址:http://www.corange.cn/demo/3738/index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"&g…

100个高质量Java开发者博客

ImportNew注&#xff1a;原文中还没有100个。作者希望大家一起来推荐高质量的Java开发博客&#xff0c;然后不段补充到这个列表。欢迎你也参与推荐优质的Java开发博客。&#xff08;声明一下&#xff1a;我们的数学不是体育老师教的&#xff01;:) &#xff09; 本文的主要目的…

IT外包概要

IT外包 前两天和朋友聊起这个外包的问题&#xff0c;就顺便给他说了一下&#xff0c;自己也整理了一下&#xff0c;发出来&#xff0c;方便更多的人。 如果有说的不准确的地方欢迎大家补充分享。 大致分两种&#xff1a; 项目外包&#xff0c;人力外包。简而言之&#xff1a;项…

linux gcc march arch,Gcc的spec中arch什么的指定

gcc/gcc.c中的set_collect_gcc_options这里面有COLLECT_GCC_OPTIONS-marcharmv4t -mtunearm920t(gdb) p switches[0]$15 {part1 0x80792b1 "marcharmv4t", args 0x0, live_cond 1,validated 1 \001, ordering 0 \000}(gdb) p switches[1]$16 {part1 0x80792c…

php如何解决中文乱码问题?

为什么会出现中文乱码&#xff1f; 很多新手朋友学习PHP的时候&#xff0c;发现程序中的中文在输出的时候会出现乱码的问题&#xff0c;那么为什么会出现这种乱码的情况呢&#xff1f;一般来说&#xff0c;乱码的出现有2种原因&#xff0c;一种是由于编码(charset) 设置错误&am…

红帽将召开“开放你的世界”在线论坛

国外媒体报道&#xff0c;美国时间5月27日&#xff0c;红帽公司将召开在线开源论坛&#xff0c;主题为“开放你的世界”。时间为美国东部时间8:45-17:30.该论坛讨论的议题包括opensource.com网站所覆盖的健康医疗、教 育、政府、法律等领域。论坛嘉宾包括这些领域的开源思考者及…

sed命令的使用和说明

sed的三种用法1.shell命令行输入命令 格式&#xff1a;sed [选项] ’sed命令‘ 输入文件2.将sed命令出入脚本文件后&#xff0c;sed命令调用格式&#xff1a; sed [选项] -f sed脚本文件 输入文件3.将sed命令插入脚本文件后&#xff0c;三种脚本文件可执行&#xff0c;直接执行…

linux pam模块 cron,Linux-PAM 1.1.2 中文文档 - 6.32. pam_tally-登录计数器(统计)模块 | Docs4dev...

pam_tally.so [file * 2 *] [onerr [* 3 * | * 4 *]] [magic_root] [even_deny_root_account] [deny * 5 *] [lock_time * 6 *] [unlock_time * 7 *] [per_user] [no_lock_time] [no_reset] [审核] [静音] [no_log_info]pam_tally [--file * 9 *] [--user * 10 *] [--rese…

Java提取文本文档中的所有网址(小案例介绍正则基础知识)

正则表达式基础以及Java中使用正则查找 定义&#xff1a; 正则表达式是一些用来匹配和处理文本的字符串 正则的基础&#xff08;先大致了解下&#xff09; 1. 正则表达式的作用 查找特定的信息&#xff08;搜索&#xff09;替换一些文本&#xff08;替换&#xff09;2. 正则基础…

计算机鼓轮

计算机鼓轮是一种计算机早期应用的机械式模数转换器转载于:https://www.cnblogs.com/emanlee/archive/2010/12/08/1900053.html

字符串大小写字母转换c 语言,towlower()

wint_t towlower ( wint_t wc );towlower() 函数用来将大写字母转换为小写字母(针对宽字符)。只有当参数 wc 是一个大写字母&#xff0c;并且存在对应的小写字母时&#xff0c;这种转换才会发生。towlower() 是 tolower() 的宽字符版本。参数wc要被转换的宽字符。它可以是一个有…

Windows与Linux之间海量文件的传输与Linux下大小写敏感问题

Windows与Linux之间海量文件的传输与Linux下大小写敏感问题 mount.cifs 支持通过网络文件系统挂载&#xff0c;不过需要安装cifs-utils&#xff0c;也可通过mount -t cifs挂载&#xff0c;详细的选项可参见man mount.cifs 1. 通过Windows共享文件夹 1.1 设置windows共享1.2 Lin…

Hashtable和HashMap的区别

HashTable的应用非常广泛&#xff0c;HashMap是新框架中用来代替HashTable的类&#xff0c;也就是说建议使用HashMap&#xff0c;不要使用HashTable。可能你觉得HashTable很好用&#xff0c;为什么不用呢&#xff1f;这里简单分析他们的区别。 1.HashTable的方法是同步的&#…

SQL解析之硬解析和软解析

当客户端进程&#xff0c;将SQL语句通过监听器发送到Oracle时, 会触发一个Server process生成&#xff0c;来对该客户进程服务。Server process得到SQL语句之后&#xff0c;对SQL语句进行Hash运算&#xff0c;然后根据Hash值到library cache中查找&#xff0c;如果存在&#xf…

ORA-00018: maximum number of sessions exceeded 超出最大会话数

ORA-00018: maximum number of sessions exceededORA-00018: 超出最大会话数 Cause: All session state objects are in use. 所有会话状态对象都在使用中。 Action: Increase the value of the SESSIONS initialization parameter. 增加会话初始化参数的…

对象关系映射(ORM)及代码生成器和插件C#源码(DBFrameworkV4.5.3)

1. ORM及代码生成器和插件C#源码(DBFrameworkV4.5.3) 一、使用对象关系映射组件Kenly.DBFramework.dll不用编写任何SQL或者存储过程即可实现下列功能&#xff1a;1、数据表、视图和存储过程与对象之间的转换。2、数据表、视图的自定义条件查询。3、数据表、视图的分页查询。4、…