关于cc -o命令
这个命令很灵活,格式是:
cc -o 目标二进制可执行文件 文件1 文件2 文件3 。。。。。
其中目标文件后面的文件,可为源代码,也可为二进制文件,也可为库文件
比如:
//a.c
#include <stdio.h>
#include "b.h"
main(){
bb();
} //b.h
int a;
void bb(void); //b.c
#include <stdio.h>
#include "b.h"
int a=;
void bb(){
printf("das%d\n",a);
}
cc -c a.c;此命令生成a.o
cc -c b.c;此命令生成b.o
ar -crv libb.a b.o;此命令生成静态库文件
以下六中连接方式都是可以的,最终都生成了同样的可执行文件a:
cc -o a a.c b.c
cc -o a a.c b.o
cc -c a a.o b.c
cc -o a a.o b.o
cc -o a a.c libb.a
cc -o a a.o libb.a
以上都是将库文件直接复制到程序文件中,链接的文件既可以是.o文件,也可以是源代码文件,但是有一点特殊的是,当我们生成动态库的时候,就只能用源代码文件去生成动态库了,而不能用中间代码.o文件去生成,举个例子:
a.c是主程序源代码,a.o是编译后的二进制文件,生成动态库文件libb.so用下面的命令
cc -shared -fPIC -o libb.so a.c
而不能用cc -shared -fPIC -o libb.so a.o
关于cc -o命令的更多相关文章
- Linux安装Redis报错`cc:命令未找到`
缺少gcc和gcc-c++的编译环境,安装即可. 可以联网情况下使用命令 yum install gcc yum install gcc-c++ 然后清理原来的残余文件 make distclean ...
- 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序
很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...
- C 语言学习 之搭建环境和熟悉命令
Open Terminal 打开终端To run a command as administrator (user "root"), use "sudo <comm ...
- Vim进阶命令
1. 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示 向上查找.其中xxx可以是正规表达式, ...
- 【C编程基础】make命令和makefile文件
1.关于程序的编译和链接 一般来说,无论是C.C++首先要把源文件编译成中间目标文件即 Object File(windows为.obj文件,unix为.o文件),这个动作叫做编译(compile). ...
- 在Windows命令行中编译运行C/C++程序
此处运行环境是在Windos下,运行cmd命令进入DOS界面 现在有一段简单C++代码(文件名为 demo.cpp),用于计算a*b的值 #include<iostream> using ...
- GNU Emacs命令速查表
GNU Emacs命令速查表 第一章 Emacs的基本概念 表1-1:Emacs编辑器的主模式 模式 功能 基本模式(fundamental mode) 默认模式,无特殊行为 文本模式(text m ...
- make命令和makefile文件
make命令和makefile文件的结合提供了一个在项目管理领域十分强大的工具,它不仅常被用于控制源代码的编译,而且还用于手册页的编写以及将应用程序安装到目标目录. makefile文件由一组依赖关系 ...
- Linux 究级基础入门命令整理
Linux 究级基础入门命令整理 条条框框,三三两两,怎讷个这么多,哈哈!no zuo no die. 纯粹个人菜鸟笔记,望大神笑纳! 后续,未完!! 查看系统信息 uname -a - 查看内核/操 ...
随机推荐
- s-axis-config-tdata
- chapter4 module and port
如果模块和外界没有交换信号,则可以没有端口列表. 端口隐含声明为wire,如果输出端口需要保存数值,则必须显式声明为reg,如需要保持数值知道下一个时钟边沿
- codeforces431B
Shower Line CodeForces - 431B Many students live in a dormitory. A dormitory is a whole new world of ...
- docker --alpine包管理工具 --apk
Alpine中软件安装包的名字可能会与其他发行版有所不同,可以在https://pkgs.alpinelinux.org/packages网站搜索并确定安装包的名称.如果需要的安装包不在主索引内,但是 ...
- Web api dynamic
参考: ajax调用实例 <script> var user = { name_CN: "haha", pwd: "123" ...
- MT【228】整数解的个数
求方程$x+y+z=24$的整数解的个数,要求$1\le x\le 5,12\le y\le 18,-1\le z\le12$ 解:设$a_r$是方程$X+Y+Z=r$的满足上述要求的整数解的个数,那 ...
- HGOI 20190217 题解
/* for me,开训第一天 /beacuse 文化课太差被抓去补文化课了... 看一眼题 : AK局? 但是,Wa on test #10 in problem C 290! (就差那么一咪咪) ...
- [luogu3505][bzoj2088][POI2010]TEL-Teleportation【分层图】
题目大意 给出了一个图,然后让你加最多的边,让点\(1\)到\(2\)之间至少要经过5条边 解法 比较清楚,我们可以将这个图看作一个分层图,点\(1\)为第一层,再将\(2\)作为第五层,这样第一层和 ...
- Shell基础知识(四)
字符串详解 字符串可以由 单引号/双引号/无引号 包围.如下所示 >> str1=hello str2="hello" str3='hello' << 三种 ...
- 洛谷 P4148 简单题 解题报告
P4148 简单题 题意 维护单点加与矩形求和,强制在线 说明 \(n\le 500000,m\le 200000\),\(4000ms / 20MB\) kd-tree 复杂度我不懂 是一颗平衡树, ...