Linux c codeblock的使用(四):创建自己的静态函数库
从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西。linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数。
其实无论是我们使用linux系统本身自带的库,还是使用第三方源代码编译所产生的函数库,无论有意识还是无意识,我们在linux下使用c语言进行编程,其实多多少少都会和函数库进行接触。
将源代码编译成函数库之后,我们想要使用相关的函数,只要带上相关的函数库一起编译或运行就好,而不必须每次都将函数库的源代码进行编译——特别是当函数库的源代码十分庞大的时候。
我们之所以需要创建自己的函数库,其实也是因为在一个工程里面,我们用到了过多的自编代码文件。为了使用方便,我们不妨将这些代码文件都编译成一个函数库。
在codeblock中为我们创建自己的函数库提供了一个十分方便的方法:
(1)打开codeblock 选择File->New->Project创建静态函数库工程.
(2)点击Next
(3)输入文件名,然后点击next
(4)点击finish
5)将新建工程里面包含的main.c删除
(6)右击工程名选择Add file将自己写的代码文件加入到工程当中
出现如下画面,点击ok就好
这是添加完成后的画面
(7)点击build,成功后会出现如下画面
(8)打开工程文件夹,可以看到编译好后生成的函数库
9)如果编译失败或是没有生成函数库怎么办在前面的步骤当中,我是直接将放置在桌面的代码直接导入的,但是我在使用codeblock过程中有个非常奇怪的地方:当你不是在/home/<用户名>文件夹中建立工程的话,并且你的代码没有放在/home/<用户名>文件夹当中,你的编译很可能不会产生任何文件。所以,直接将工程建立在/home/<用户名>文件夹当中就好(比如说我的用户名为linfen,我就将工程建立在/home/linfen文件夹下),并且所有所需的代码也要放在工程目录下
Linux c codeblock的使用(四):创建自己的静态函数库的更多相关文章
- LINUX编程学习笔记(十四) 创建进程与 父子进程内存空间
1什么是进程:进程是一个执行中的程序 执行的程序: 代码->资源->CPU 进程有很多数据维护:进程状态/进程属性 所有进程属性采用的一个树形结构体维护 ps -a//所有进程 ps - ...
- 《Linux内核分析》 第四节 扒开系统调用的三层皮(上)
<Linux内核分析> 第四节 扒开系统调用的三层皮(上) 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com ...
- Linux系统运维笔记(四),CentOS 6.4安装 MongoDB
Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...
- Linux内核分析 - 网络[十四]:IP选项
Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报 分类: 内核协议栈 ...
- Linux下安装SVN,仓库创建,用户权限管理
Exported from Notepad++ Linux下安装SVN,仓库创建,用户权限管理 1.SVN安装 Ubuntu系统下安装:sudoapt-getinstallsubv ...
- 【Linux】进程的结构,创建,结束,以及程序转化为的进程的过程
本文内容: 1.进程的结构 2.程序转化为进程的过程 3.进程的创建 4.进程的结束 背景知识: 1.进程是计算机中处于运行的程序的实体 2.进程是线程的容器 3.程序本身只是指令,数据以及组织形式的 ...
- 【Linux】多线程同步的四种方式
背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通过多线程模拟多窗口售票为例: #include <iostream> #include<pthread.h> ...
- 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat
阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat 执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...
- DevExpress XtraReports 入门四 创建 Web 报表
原文:DevExpress XtraReports 入门四 创建 Web 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助更多的人不会像我这 ...
随机推荐
- MySQL复制表-CREATE SELECT
假设存在以下Table: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+-- ...
- React Hooks (React v16.7.0-alpha)
:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...
- spark报错解决
19/03/04 18:18:42 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.i ...
- js 手动插入meta标签和script标签
// 插入 meta 标签 var oMeta = document.createElement('meta'); oMeta.content = 'width=device-width, initi ...
- future then
import 'dart:async'; main(){ Future(()=>a1()) .then((x)=>a2(x)) .then((x)=>a3(x)) .then((x) ...
- Angular 中的数据交互(get jsonp post)
Angular get 请求数据 Angular5.x 以后 get.post 和和服务器交互使用的是 HttpClientModule 模块. import {HttpClientModule} f ...
- COMS3200 The RUSH protocol
Part C (50 marks)The RUSH protocol (Reliable UDP Substitute for HTTP) is a HTTP-like stop-and-wait p ...
- 标定版制作(棋盘、圆点、aruco等)
标定板这个东西,对于双目.立体视觉来说那都是必须的.我们这里提供一些做好的标定板,也提供制作标定板的制作方法 一.基本制作思路(以棋盘标定板为例) 1. “插入” - “表格” 根据提示选择多少行乘 ...
- 本学期C#学习个人总结
本学期C#的学习结束了,我在这里作一下总结.我还记得陈老师在第一节课上说过,学任何东西,都要学结构,否则你不会学好.当我听到这句话的时候,没有放在心上,可是随着C#学习的不断深入,我越来越发现许多知识 ...
- Python中关于列表嵌套列表的处理
在处理列表的时候我们经常会遇到列表中嵌套列表的结构,如果我们要把所有元素放入一个新列表,或者要计算所有元素的个数的话应该怎么做呢? 第一个例子 对于上图中的这样一组数据,如果我们要知道这个CSV文件中 ...