c++动静编译的区别

2023-11-15

动态编译和静态编译的区别

动态编译决定了在程序运行时才会连接库文件(需要部署的坏境安装对应库,程序体积小)
静态编译在编译时就连接好库文件了(所有库文件都打包进程序了,所以体积大,不过移植性好)

demo

静态编译
test.h

#ifndef _TEST_H_
#define _TEST_H_
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int add(int num1, int num2);
#endif //_RYAN_CONFIG_H_

test.cpp

#include "test.h"
int add(int num1, int num2)
{
	return num1+num2;
}

将之编译成静态库

g++ -c test.cpp 
ar crv libtest.a test.o 

使用静态库demo
server.cpp

#include <stdio.h>
#include <string>
#include <iostream>
#include "test.h"
int main()
{
	int a = 10;
	int b = 10;
	int c = add(10,10);
	printf("%d\n",c);
	return 0;
}

编译

g++ server.cpp -o server -ltest

请关注我的订阅号

订阅号.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++动静编译的区别 的相关文章

  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • WPF 中的屏幕分辨率问题?

    我将在 WPF 中使用以下代码检测分辨率 double height System Windows SystemParameters PrimaryScreenHeight double width System Windows Syste
  • 分段错误(核心转储)错误

    我的程序编译罚款 但在输入文件时出现 分段错误 核心转储 错误 我没有正确处理 ostream 吗 include
  • 内联函数/方法

    声明 内联函数必须在调用之前定义 这个说法正确吗 EDIT 该问题最初是德语 内联功能穆森 弗 伊赫雷姆 奥夫鲁夫定义 sein 也许它对任何人都有帮助 是的 它是正确的 但只是部分正确 它可能正确地重新构建如下 内联函数必须在每个翻译单位
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • 从 Code::Blocks 运行程序时出现空白控制台窗口 [重复]

    这个问题在这里已经有答案了 当我尝试在 Code Blocks 中构建并运行新程序时 控制台窗口弹出空白 我必须单击退出按钮才能停止它 它对我尝试过的任何新项目 包括 Hello world 都执行此操作 奇怪的是 它对于我拥有的任何旧项目
  • 从成员函数指针类型生成函子

    我正在尝试简化 通过make fn 预处理参数的函子的生成 通过wrap 对于 arity 的成员函数n 生成函子基本上可以工作 但到目前为止只能通过显式指定成员函数的参数类型来实现 现在我想从它处理的成员函数类型生成正确的函子 struc
  • libxml2 xmlChar * 到 std::wstring

    libxml2似乎将所有字符串存储在 UTF 8 中 如xmlChar xmlChar This is a basic byte in an UTF 8 encoded string It s unsigned allowing to pi
  • 预处理后解析 C++ 源文件

    我正在尝试分析c 使用我定制的解析器的文件 写在c 在开始解析之前 我想摆脱所有 define 我希望源文件在预处理后可以编译 所以最好的方法是运行C Preprocessor在文件上 cpp myfile cpp temp cpp or
  • 默认析构函数做了多少事情

    C 类中的默认析构函数是否会自动删除代码中未显式分配的成员 例如 class C public C int arr 100 int main void C myC new C delete myC return 0 删除 myC 会自动释放
  • DataTable:通过 LINQ 或 LAMBDA 进行动态 Group By 表达式

    我有一个数据表 我想在其中对未指定数量的字段进行分组 发生这种情况的原因是用户可以选择他想要分组的字段 所以 实际上 我将选择推入列表中 在这个选择上 我必须对我的数据表进行分组 想象一下这段代码 VB 或 C 都一样 public voi
  • 使用 iTextSharp 5.3.3 和 USB 令牌签署 PDF

    我是 iTextSharp 和 StackOverFlow 的新手 我正在尝试使用外部 USB 令牌在 C 中签署 PDF 我尝试使用从互联网上挖掘的以下代码 Org BouncyCastle X509 X509CertificatePar
  • 在 C++17 中使用 成员的链接错误

    我在 Ubuntu 16 04 上使用 gcc 7 2 并且需要使用 C 17 中的新文件系统库 尽管确实有一个名为experimental filesystem的库 但我无法使用它的任何成员 例如 当我尝试编译此文件时 include
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include
  • 以 UTF8 而不是 UTF16 输出 DataTable XML

    我有一个 DataTable 我正在使用 WriteXML 创建一个 XML 文件 尽管我在以 UTF 16 编码导出它时遇到问题 并且似乎没有明显的方法来更改它 我了解 NET 在字符串内部使用 UTF 16 这是正确的吗 然后 我通过
  • 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同

    System Net WebException 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同 在 System Net FtpWebRequest CheckError 在 System Net FtpWebReque

随机推荐

  • (无需编译)使用官方prebuilt文件在win10下配置caffe for python

    网上给出的caffe安装教程基本上需要自己编译 我在编译的过程中遇到很多问题 弄了很久也没有配置好 然而官方给出了prebuilt的版本 网址 BVLC caffe at windows 之前看到过prebuilt版本但一直不知道怎么使用
  • Linux系统调用--fcntl函数详解

    Linux系统调用 fcntl函数详解 2007 11 06 15 09 分类 ARM Linux应用程序 今天在看 Linux设备驱动程序 第3版 碰到了fcntl系统调用 以前没接触过 在网上查到了这份资料 转载自 企鹅乐园 雅虎群组
  • arcgis10之获取面要素中心点坐标

    第一步 获取中心的文件 第二步 新建两个存储中心点做坐标的字段 第三步 计算要要素中心的xy坐标 同理 计算中心点Y坐标即可
  • 定义表单规则(判断两次密码输入是否一致)

    主要代码 required true validator validateRepassword trigger change export default name form data var validateRepassword rule
  • 微信小程序入门-随机人脸生成

    微信小程序入门 随机人脸生成 开发背景 工具准备 微信小程序开发过程 开发背景 this person does not exist 这个网站起源于英伟达公司研究人员们打造的AI机器人 其能够生成随机且极为逼真的人脸图像 而实际上这些人脸并
  • 转:Cookie详解

    没怎么坐过客户端相关的工作 所以写爬虫的时候 很多概念都很模糊 学习起来很困难 现在想攻坚一下 所以找了一下cookies相关的内容 HTTP cookies 通常又称作 cookies 早期Web开发面临的最大问题之一是如何管理状态 服务
  • 关于“Could not open ServletContext resource [/WEB-INF/applicationContext.xml]”解决方案

    问题产生 最近学了Maven 并尝试将以前的项目 springmvc myabtis 重构成Maven项目 Maven项目推荐各种资源文件都放在src java resources目录下 所以我自然把spring的配置文件 包括spring
  • blender模型和材质导入UE4的工作流

    UE4设置 打开UE4 设置 gt 插件 搜索script 启用 然后编辑 gt 项目设置 找到python 是否远程执行打勾 Blender设置 然后下载Blender to UE4的插件 作者地址https github com ana
  • ios的input点击时有阴影

    最近做项目时遇到一个问题 就是h5页面 在ios浏览器中打开的时候 上面的input框点击的时候会出现一片阴影 然后一闪而过 对功能没什么阴影 就是不太美观 经过试验发现 当input使用默认边框时 也会有闪 因为有边框的原故 闪的不太明显
  • Springboot前后端数据传递的序列化数据格式:json字符串

    Springboot进行前后端数据传递格式json字符串的简单理解 1 对象的序列化和反序列化都什么时候用 当你想把内存中的对象保存到磁盘上的文件或者数据库中时 当你想用套接字在网络上传送对象时 当你想通过RMI传输对象时就牵扯到对象的序列
  • Java Scanner类中next()和nextLine()的区别

    next next 一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的空格键 Tab键或Enter键等结束符 next 方法会自动将其去掉 只有在输入有效字符之后 next 方法才将其后输入的空格键 Tab键或Enter键等视为
  • Windows 安装 RabbitMq 和 Erlang

    1 安装Erlang 音乐RabbitMq是基于Erlang开发的 所以先要安装这个环境 下载地址 32位 64位 其他版本自己找 官网 下载完之后无脑安装直接一直下一步 2 配置Erlang环境变量 2 1 新建ERLANG HOME 把
  • unity如何解决协程开启频繁导致的程序卡顿

    unity如何解决协程开启频繁导致的程序卡顿 一 协程 协程并不会在Unity中开辟新的线程来执行 其执行仍然发生在主线程中 当我们有较为耗时的操作时 可以将该操作分散到几帧或者几秒内完成 而不用在一帧内等这个操作完成后再执行其他操作 二
  • 去掉页眉横线三法 (WORD)

    在使用WORD中 我们时常会用到页眉 但是加上页眉后 在页眉下往往有一横线 可是我们有时根本不需要这条横线 但它删都删不掉 怎么办呢 小弟在此奉上一计 一首先 打开一文档就不用说了 点击 视图 页眉和页脚 然后光标定位在页眉中 点击 格式
  • oracle在线日志损坏,前在线日志文件损坏与ora-600 [4000]处理

    这次又是一台机器上面有两个实例A和B 又是由于非当前的在线日志文件的状态是处于closed状态的 裸设备 于是dba将A节点的非当前在线日志文件填加到了B节点上面去了 于是在A节点日志发生切换时 导致了当前在线日志文件损坏 一般情况下当前在
  • 前端性能优化之页面加载

    牛客在线求职答疑中心 35799 牛客在线求职答疑中心 华为oppe 联洲国际3个offer该如何选择 牛客在线求职答疑中心 35799 牛客在线求职答疑中心 华为oppe 联洲国际3个offer该如何选择 想问一下紫光同芯这家公司 他们的
  • 【计算机网络】(五)网络层之ip地址+数据封装

    1 ip地址 1 1 IP地址一些概述 Internet protocol 互联网协议 IP地址 其实就是互联网协议里使用的地址 一台电脑 一个服务器都是一台主机 IP地址是主机唯一的标识 保证主机间正常通信 一种网络编码 用来确定网络中一
  • python os 模块

    os 模块 可以通过os模块调用系统命令 获得路径 获取操作系统的类型等都是使用该模块 1 通过os 获取系统类型 os name import os print os name nt nt 代表windows posix linux gt
  • C++ set容器及其常见操作

    文章目录 前言 一 什么是set容器 二 set容器的特征 三 set容器的常见操作 四 使用步骤 1 引入头文件 2 set容器的定义 3 set的插入和删除 4 set的遍历 5 set size 总结 前言 使用集合框架不仅能提高我们
  • c++动静编译的区别

    动态编译和静态编译的区别 动态编译决定了在程序运行时才会连接库文件 需要部署的坏境安装对应库 程序体积小 静态编译在编译时就连接好库文件了 所有库文件都打包进程序了 所以体积大 不过移植性好 demo 静态编译 test h ifndef