当前位置: 首页 > news >正文

胶州网站建设dch100乐陵网站开发

胶州网站建设dch100,乐陵网站开发,网络推广渠道,最新网络游戏1. 介绍 C语言的相关后缀 .a 文件是一个静态库文件.c,.c ,.cp,.cpp,.cc,.cxx 这几种后缀都可以表示c的源文件.h ,.hpp c语言的头文件.i 是c预处理文件.o 目标文件.s汇编语言的文件.so 动态库或者共享库或者称为运行时库 2. C编译 2.1 预处理 g -E helloworld.cpp # 虽…

1. 介绍

C++语言的相关后缀

  • .a 文件是一个静态库文件
  • .c,.c++ ,.cp,.cpp,.cc,.cxx 这几种后缀都可以表示c++的源文件
  • .h ,.hpp c++语言的头文件
  • .i 是c++预处理文件
  • .o 目标文件
  • .s汇编语言的文件
  • .so 动态库或者共享库或者称为运行时库

2. C++编译

2.1 预处理

g++ -E helloworld.cpp   # 虽然预处理了,但不会输出.i文件
g++ -E helloworld.cpp -o helloworld.i   # 指定输出.i文件
  • -E选项告诉编译器只进行预处理操作
  • -o 选项把预处理的结果输出到指定文件

2.2 生成汇编语言

g++ -S helloworld.cpp
g++ -S helloworld.cpp -o helloworld.s
  • -S 选项告诉编译器,进行预处理和编译成汇编语言操作

每个平台对应的汇编语言的形式是不同的,例如有很多型号的开发板,有很多型号的CPU

2.3 源文件生成目标文件

g++ -c helloworld.cpp   # 默认生成 helloworld.o 目标文件
g++ -c helloworld.cpp  -o harumph.o  # 指定目标文件名
#编译多个.c文件
g++ -c helloworld.cpp helloworld1.cpp hellworld2.cpp

2.4 生成可执行文件

(1) 单个源文件编译为可执行文件

  • 注意: 后面2个命令执行后并没有按编译过程出现.i,.s,.o文件,并不意味着没有经历这些过程
g++ helloworld.cpp
g++ helloworld.cpp -o howdy

执行程序

./可执行文件

(2) 多个源文件编译为可执行文件

g++ hellomain.cpp  sayhelo.cpp -o hello

3. 生成库文件

3.1 生成静态库

(1) 编译成.o文件

g++ -c [.cpp] -o [自定义文件名]  #单个源文件
g++ -c [.cpp] [.cpp] ...   # 多个源文件

(2) 编译静态库

ar -r [lib自定义库名.a]  [.o] [.o] ...

(3) 链接成可执行文件

g++ [.cpp] [.a] -o [自定义输出文件名]
g++ [.cpp] -o [自定义输出文件名] -l[库名] -L[库所在路径]

3.2 生成动态库

(1) 编译二进制.o文件

g++ -c -fpic [.c/.cpp] [.c/.cpp] ...

(2) 编译动态库

g++ -shared [.o] [.o] ... -o [lib自定义库名.so]

(3) 链接动态库到可执行文件

g++ [.c/.cpp] -o [自定义可执行文件名] -l[库名] -L[库路径] -Wl,-rpath=[库路径]

4. 总结

(1). 编译过程

源文件.cpp文件 -> 预编译成.i文件 -> 编译成汇编语言.s -> 汇编成.o文件 -> 链接成可执行文件(名字自定义,后缀没关系)

(2). 编译过程命令

  • 预处理
g++ -E [.cpp源文件] -o [自定义输出文件名.i]
  • 编译成汇编语言[隐藏了预处理操作]
g++ -S [.cpp源文件]
  • 编译目标文件(二进制文件,可用于链接)
g++ -c [.cpp源文件] [.cpp源文件] [...] (可选项:-o [自定义文件名])

(3). 库

静态库

  • 编译(先转成.o文件,在编成lib(自定义库名).a)
g++ -c [.cpp源文件] [.cpp源文件] [...] (可选项:-o [自定义文件名])  #编译目标文件
ar -r lib[自定义库名].a  [.o文件] [.o文件]  [...]

动态库

  • 编库
    • 第一种做法,先转成.o文件,再编成.so文件
    g++ -c fpic [.cpp源文件]  [.cpp源文件]  [...]     
    g++ -shared [.o文件]  [.o文件] [...] -o lib[库名].so```
    
  • 第二种做法,直接转成.so
g++ -fpic -shared  [.cpp源文件]  [.cpp源文件]   [...]  -o  lib[库名].so
  • 链接
g++ [main文件] -o [自定义输出可执行文件名] -l[库名] -L[库所在路径] -Wl, -rpath=[库所在路径]

可以看出C++的编译和库连接与C的编译和链接,基本上都是一模一样。区别很简单:

  • 命令中 c++用的是g++编译器, c语言用的是 gcc编译器
  • 并且g++编译器同时也支持.c c文件的编译
http://www.yayakq.cn/news/286861/

相关文章:

  • wordpress 做音乐网站58同城济南网站建设
  • 河北专业网站建设阳江做网站多少钱
  • 建设网站平台合同范本用域名访问网站
  • 网站开发 高级认证公司建设网站的通知
  • 怎么用dw第一次做网站京紫元年深圳网站建设
  • 哪家做的网站有利于百度推广想开发一个app需要多少钱
  • 景区门户网站建设方案优化大师免费下载
  • 手机做免费个人网站东莞做网站公司首选
  • 广州网站建设系统开发常见的erp系统大概要多少钱
  • 电商网站开发面临的技术问题在洪雅网站做企业招聘
  • 长春门户网站建设wordpress 增加分类字段
  • 免费的手机网站模板长沙做网站好的公司
  • 小语种网站案例wordpress会建站怎么找工作
  • 乌市正规网站建设自己建免费网站
  • 怎么用 c文件做网站网站的优化seo
  • 免费制作网站的基本流程临沂市经济开发区建设局网站
  • 双语言网站源码推荐一个做淘客网站
  • 惠州建站方案怎样开发公司的网站建设
  • html网站二维码悬浮怎么做学网站开发的软件
  • 国外虚拟服务器网站wordpress 人物页面
  • 重庆网站建设优化排名电子建设网站的目的
  • 成都网站公司网站建设长春网站建设技术托管
  • 网站上传模板后丹阳网站建设公司
  • 网站建设标书范本wordpress免费主机
  • 渭南网站建设价格唐山网站建设500元
  • 简洁企业网站asp建设网站要求哪里备案
  • 凡客诚品网站多语种外贸网站
  • 石龙网站建设兰州网站卡法
  • 网站建设综合训练报告石岩网站设计
  • 成都网站制作龙兵科技旺道营销软件