CodeBlocks静态库的创建和使用
- 格式:doc
- 大小:853.50 KB
- 文档页数:12
code blocks使用Code Blocks是一种开源的集成开发环境(IDE),用于编写、编译和调试各种编程语言的代码。
它提供了一个友好的用户界面和丰富的功能,使开发者能够更高效地进行编程工作。
Code Blocks具有多种编程语言的支持,包括C、C++、Java等。
无论你是初学者还是经验丰富的开发者,都可以在Code Blocks中轻松地编写和调试代码。
它提供了自动完成、语法高亮、代码折叠等功能,使得编写代码更加方便快捷。
Code Blocks还支持多种编译器,包括GNU GCC、Microsoft Visual C++等。
你可以根据自己的需求选择合适的编译器,并进行相应的配置。
Code Blocks提供了一个集成的编译器管理器,使得切换编译器变得非常简单。
Code Blocks还具有强大的调试功能。
你可以设置断点、监视变量、单步执行等,以便更好地理解和调试代码。
此外,它还支持多线程调试和远程调试,方便开发者进行复杂的调试任务。
Code Blocks还提供了一些实用的工具和插件,用于增强开发效率。
例如,它可以自动生成代码模板、自动格式化代码、查找和替换文本等。
此外,你还可以通过安装插件来扩展Code Blocks的功能,例如版本控制、代码统计等。
在使用Code Blocks时,你可以通过创建项目来组织和管理代码。
一个项目可以包含多个源文件和资源文件,并且可以配置编译选项、链接选项等。
Code Blocks还提供了一个方便的项目管理器,使得项目的创建、导入和导出变得非常简单。
除了上述功能,Code Blocks还支持多国语言界面,并且可以在不同操作系统上运行,包括Windows、Linux、Mac OS等。
这使得开发者可以在不同的平台上使用相同的开发环境,提高了代码的可移植性和跨平台性。
Code Blocks是一款功能强大、易用且免费的集成开发环境。
无论你是编程初学者还是经验丰富的开发者,都可以通过使用Code Blocks来提高编程效率,快速开发出高质量的代码。
静态库的制作和使⽤静态库的创建和使⽤1>.命名规则lib+库的名字+.a例⼦:libmytest.a2>.制作步骤a.⽣成对应的.o⽂件【.c --> .o】b.将⽣成的.a⽂件打包ar rcs + 静态库的名字【libmytest.a】 + ⽣成的所有的.o3>.发布和使⽤静态库a.发布静态库b.头⽂件include--存放头⽂件lib--存放库src--存放源码演⽰:include⽂件夹下⾯存放head.h【头⽂件】#ifndef __HEAD_H_#define __HEAD_H_int add(int a, int b);int sub(int a, int b);int mul(int a, int b);int div(int a, int b);#endiflib下⾯存放静态库src下⾯存放源码add.c#include "head.h"int add(int a, int b){int result = a + b;return result;}div.c#include "head.h"int div(int a, int b){int result = a / b;return result;}mul.c#include "head.h"int mul(int a, int b){int result = a * b;return result;}sub.c#include "head.h"int sub(int a, int b){int result = a - b;return result;}main.c是程序执⾏⼊⼝#include <stdio.h>#include "head.h"int main(void){int sum = add(2, 24);printf("sum = %d\n", sum);return 0;}步骤⼀:⽣成对应的.o⽂件【.c --> .o】gcc *.c -c -I ../include⽣成 add.o div.o mul.o sub.o四个⼆进制⽂件默认⽣成.o⽂件步骤⼆:将⽣成的.o⽂件打包成静态库.a⽂件ar rcs libMyCalc.a *.o将⽣成的 libMyCalc.a ⽂件移动到 lib⽂件夹下mv libMyCalc.a ../lib步骤三:发布静态库 ⽅式⼀:gcc main.c lib/libMyCalc.a -o sum -Iinclude ⽅式⼆:gcc main.c -Iinclude -L lib -l MyCalc -o mysumIinclude 指定头⽂件-L 指定静态库⽂件⽬录-l 指定静态库⽂件名称【摘头去尾之后的名称:libMyCalc.a-->MyCalc】-o 指定可执⾏⽂件名称步骤四:使⽤静态库./mysum使⽤nm查看静态库和可执⾏⽂件 nm libmytest.a nm mysum.out静态库⽣成可执⾏⽂件详解:libMyCalc.a静态库中包含add.o div.o mul.o sub.o四个⼆进制⽂件,如果main.c使⽤了add.o div.o⾥⾯的函数,⽣成可执⾏程序的时候只打包add.o div.o最终⽣成mysum这个可执⾏程序静态库的优缺点 优点:1.发布程序的时候,不需要提供对应的库 2.加载库的速度快 缺点:1.库被打包到应⽤程序中,导致库的体积很⼤ 2.库发⽣了改变,需要重新编译程序。
C语言程序静态库和动态库的创建及其应用在用c写程序时,很多时候需要存储一些简单的数据,如果为此而用mysql数据库就有些大才小用了,可以把这些数据以结构的形写入文件,然后再需要时读取文件,取出数据。
如下是定义函数的源文件和头文件:源文件struct.c:#include "struct.h"//第一个参数是要写入的文件名,第二个参数是缓冲区,第三个参数是缓冲区大小,第四个参数是打开文件流的形态,返回TRUE表示写入成功,返回FALSE表示写入失败int writeStruct(const char *fileName,char *buffer,int bufferLen,char *mode){ int ret;FILE *fileID = NULL;fileID = fopen(fileName,mode);if (fileID == NULL){perror("fopen");goto writeEnd;}rewind(fileID);ret = fwrite(buffer,bufferLen,1,fileID);if (ret <= 0){perror("fwrite");goto writeEnd;}if (fileID != NULL){fclose(fileID);fileID = NULL;}return TRUE;writeEnd:if (fileID != NULL){fclose(fileID);fileID = NULL;}return FALSE;}//第一个参数是要读取的文件名,第二个参数是缓冲区,第三个参数是缓冲区大小,第四个参数是打开文件流的形态,返回TRUE表示读取成功,返回FALSE表示读取失败int readStruct(const char *fileName,char *buffer,int bufferLen,char *mode){ int ret;FILE *fileID = NULL;fileID = fopen(fileName,mode);if (fileID == NULL){perror("fopen");goto readEnd;}rewind(fileID);memset(buffer,0,sizeof(buffer));ret = fread(buffer,bufferLen,1,fileID);if (ret >= 0){strcat(buffer,"\0");}else{perror("fread") ;goto readEnd;}if (fileID != NULL){fclose(fileID);fileID = NULL;}return TRUE;readEnd:if (fileID != NULL){fclose(fileID);fileID = NULL;}return FALSE;}头文件struct.h:#ifndef OWNSTRUCT_H_#define OWNSTRUCT_H_#include#include#include#define FALSE 0#define TRUE 1//第一个参数是要写入的文件名,第二个参数是缓冲区,第三个参数是缓冲区大小,第四个参数是打开文件流的形态,返回TRUE表示写入成功,返回FALSE表示写入失败int writeStruct(const char *fileName,char *buffer,int bufferLen,char *mode);//第一个参数是要读取的文件名,第二个参数是缓冲区,第三个参数是缓冲区大小,第四个参数是打开文件流的形态,返回TRUE表示读取成功,返回FALSE表示读取失败int readStruct(const char *fileName,char *buffer,int bufferLen,char *mode);#endif为了使用方便,可以把这两个函数接口定义为动态链接库或静态链接库。
CodeBlocks使用方法1、下载CodeBlocks.rar,并把它解压到当前系统分区中的某一根目录下,比如F:\ ,注意:不要解压到含有中文或空格的目录中(尤其是不能解压到桌面)!2、进入“F:\codeblocks”目录,并双击“codeblocks.exe”可执行文件,启动它。
3、现在我们学习如何通过向导创建一个控制台应用,并且直接编译、运行它。
步骤1:Code::Blocks主菜单“文件”→“新建”→“项目…” 弹出如下对话框中,开始“Console Application”。
(图 1 开始“Console Application”向导)步骤2:如果出现向导的“欢迎界面”,直接点击下一步。
步骤3:出现用于选择语言的对话框,选择“C++”,下一步。
步骤4:出现选择文件夹的对话框,在“项目标题”中输入“HelloWorld”。
两单词连写,不包括双引号。
本步操作结果将会在“我的文档”中“CodeBlocks Projects”目录下,新建一个名称为“HelloWorld”的目录。
步骤5:出现编译器选项对话框。
在“编译器”中选择“GNU GCC Compiler”。
其下则默认“Debug”与“Release”两个编译目标都是默认选中的,不必改变,通常我们都需要调试和发行两个版本,就算是一个Hello Word的简单程序。
按下“完成”。
步骤6:必要时按下“Shift + F2”,出现“Management”侧边栏,如下图:(图 8 项目管理器)步骤7:双击上图所示的main.cpp,将打开该文件。
暂时我们还并不需要修改它。
步骤8:主菜单“构建”→“构建”。
或者,用热键Ctrl+F9,完成编译。
步骤9:再按Ctrl + F10,运行。
(9、10步也可以通过工具栏实现,请读者自行熟悉)。
下面是运行结果图:步骤10:其中“Hello world!”是我们程序的输出。
下面的内容是Code::Blocks 为了方便我们调试而增加的内容(本来该程序运行后,就直接退出),包括显示了程序运行用时,以及提示“按任意键退出”。
Codeblocks简单使用入门
1.下载与安装
下载地址:/downloads/26
下载版本:建议下载codeblocks-16.01mingw-setup.exe 该版本自带GCC/G++ 编译器和 GDB调试器,便于使用。
安装:建议大家安装时“选择默认安装路径”,一直下一步即可。
如安装在其它位置,则需要配置编译器的路径,比较麻烦。
2.使用步骤
2.1打开Codeblocks软件
2.2点击新建按钮,选择File...
2.3选择C/C++source,点击Go
2.4点击Next
2.5根据自己的需求选择C或C++,此处以C为例
2.6点击路径选择按钮并设置文件名,确认后点击Finish按钮
2.7接下来进入程序编辑界面,输入helloworld测试代码
2.8点击Build and run按钮
注:Build: Compile and Link,编译连接,生成可执行文件,文件格式exe(快捷键Ctrl+F9)
Run:执行,直接执行可执行文件(Ctrl+F10)
Build and Run:编译连接并执行(快捷键F9)
2.9下面为程序运行结果,展示了运行时间,从而可以判断自己算法的复杂度。
CodeBlocks使用简略教程Code::Blocks使用简略教程目录1新建工程2 2代码编辑5 3编译链接和运行73.1“构建”(编译链接) (7)3.2运行 (8)4调试9 5Linux终端配置101新建工程File(文件)→New(新建)→Project(工程)选中Console Application(控制台程序),单击“Go”。
选择编程语言,C语言或C++语言:2单击Next(下一步)。
选择工程路径,和工程名。
下面会自动生成工程文件名*.cbp(cbp是Code::Blocks Project)。
单击Next(下一步)。
选择编译器,一般选gcc就行。
3单击Finish。
42代码编辑单击左侧的文件列表的Sources的“+”号:双击main.cpp:5源代码已经出来了:63编译链接和运行3.1“构建”(编译链接)73.2运行运行结果:最后一行,会输出运行时间,和main函数的返回值。
84调试F5设置断点:F8开始调试:调试按钮:9查看变量:5Linux终端配置Code::Blocks在Linux中默认的终端是非常古老的XTerm终端,而不是GNOME 桌面默认的gnome-terminal终端。
然而,XT erm终端对汉字支持非常不好,而且不支持复制粘贴。
这对我们ACM-ICPC竞赛非常不利,因此,我们需要将其换成gnome-terminal终端。
10第一步,单击Settings(设置)→Environment(环境)第二步,在General settings(全局设置)中,把Terminal to launch console pro-grams(启动程序的终端)设置成gnome-terminal-t$TITLE-x第三步,单击“确定”按钮。
11。
双击并安装:
单击Next:
※选择安装的路径(强烈建议:保持默认的路径):
保证电脑连接上网络,直到将所有文件下载并安装完全完为止:
安装完后的C盘目录:
②下载并安装Code::Blocks:
(/projects/codeblocks/files/latest/download?source=rec ommended),双击下载安装程序:
中第一项:Global compiler setting右边选中“GNU GCC Compiler”(通常默认):
其下选中“Toolchain executables”(第四个选项),点一下Auto-detect,会让C::B 自动检测到MinGW的安装路径(如果你不是安装在默认路径,则点击选择你所安装的路径后点“OK”):
单击Create a new project:
选择Console application:
一直单击next:
展开Sources(Code::Blocks默认提供一个测试代码):
依次单击和按钮:
编译成功:
原文地址:/article/13-06/codeblocks.html 更多内容,欢迎访问:/。
过程
第一步:启动code::blocks后,选择“Creat a new project”,如下图图标,
后,弹出“New from template”对话框,如下图,
拖动右侧的滚动条,选择其中的”Static library”, 在点击右上角的”Go”按钮,后弹出“Static library”对话框,如下图
点击“Next”按钮,后进入下一步,输入工程名称和保存路径,如名称为“mylib”,保存路径为“F:\Ctest\”,其中四个文本框,只需填前两个,下面两个会自动生成。
如下图,
点击”Next”按钮,进入下一步,配置相关的编译器,调试和发布版本的信息,选择默认即可,如下图
点击“Finish”按钮,进入主界面,将作出的管理窗口“Workspace”下的目录展开,如下图,
右击仅有的main.c文件,弹出一个浮动的菜单,如下图
选择其中的“Rename file...”弹出“Rename file”对话框,如下图,
将文本框中的名字改为“mylib.c”,点击”OK”按钮,左侧的管理窗口中的“main.c”文件名字变为“mylib.c”,如下图
双击“mylib.c”文件名,进入文件编辑状态,从中添加你所有想要
包含的函数,若还有其他很多源文件和头文件,可选择“File”下拉菜单的“new”菜单的“Empty file”,如下图
我们这里创建一个“mylib.h”的头文件,当点击了“Empty file”后,弹出一个消息框,问是否将文件添加入工程,如下图
点击“是”,之后生成一个“Save file”对话框,如下图
将文件名改为“mylib.h”,后点击保存,在生成的对话框点击”OK”, 可以进行编辑文件了,几乎和普通工程没区别,全局变量、头文件等都存在,只是去掉main函数,确定要创建静态链接库的函数为最外层函数入口。
我们做一个两个正整数中加大者的函数
1、头文件的声明如下图
2、在源文件“mylib.c”中编辑代码
第二步、编译、调试、直至成功
3.切换到工程目录“F:\Ctest\mylib\bin\Debug”下,可以看到生成的“libmylib.a”,这个就是生成的静态库,名字中前五个字母“libmy”和我们的工程名一致,其后的“lib.a”是系统指定的静态库的固定格式,此时生成的所有文件中对我们有用的有两个:一个是“libmylib.a”的静态库文件,另个一是在目录“F:\Ctest\mylib”下的“mylib.h”头文件,在F盘下建立文件夹“mylib”,在“mylib”中创建两个文件夹“lib”和”include”,把文件“lib.a”拷贝到“F:\mylib\lib”目录下,把文件“mylib.h”拷贝到“F:\mylib\include”目录下。
第三步、测试使用自己创建的静态库:
在code::blocks下建立c工程,依然保存在“F:\Ctest”中,工程命名为“drivemylib”,在其中的”main.c”中添加如下代码
此时,编译生成error: mylib.h: No such file or directory,报告没有找到头文件,
如下设置:
点击“setting”下拉菜单,选”Compiler...”选项,如下图
弹出“Compiler setting”对话框,如下图
选择左侧的“Gobal compiler setting”,中的“Search directories”,中的“Compiler”选项卡,点击“Add”按钮,弹出“Add directories”对话框,然后点击右侧的三个点的标志,进行文件夹浏览,选择“F:\mylib\include”目录
如下图
点击”OK”,即将头文件的目录配置完成
再选择选项卡“Linker settings”
单击”Add”,一样弹出输入目录的对话框,选择“F:\mylib\lib\libmylib.a”,即将我们自己的库配置完成。
第四步、编译……成功
此时,点击编译按钮,可成功编译。
4.运行程序
就得到两个数中的最大值。