Ubuntu下CodeBlocks的安装、配置及静态库动态库的简单使用举例

2023-11-11

1、  从Ubuntu Software Center中搜索Code::Blocks并安装;

2、  在第一次启动时选择GNU GCC Compiler作为默认的编译器;

3、  生成静态库并调用操作步骤,代码同 http://blog.csdn.net/fengbingchun/article/details/17994489

3.1、New file ->Project… -> 选中Static library, -> Go -> Next: Project title:test_lib, Folder to create project in: /home/spring/CodeBlocks/ ,Project filename: test_lib.cbp, Resulting filename: /home/spring/CodeBlocks/test_lib/test_lib.cbp , Next->: Compiler: GNU GCC Compiler ,选中Create”Debug”configuration和Create”Release”configuration,其它默认, ->Finish;

3.2、将上面提到的include和src两个文件夹复制到与test_lib.cbp同一目录下;

3.3、改写src包括的相关文件,如#include“add.h”改为#include ”../include/add.h”等,移除工程中生成的main.c文件,并将src和include的文件全部加载到此工程中;

3.4、打开此工程属性设置 ->Build targets:Debug下,Output filename改为libtest_lib[linux_dbg_32].a, Release下,Output filename改为libtest_lib[linux_rel_32].a,编译即可生成相应的静态库;

3.5、新建一个控制台工程,工程名为CallStaticLibrary,其它默认,此工程main.cpp文件内容为:

#include "../test_lib/include/hybrid.h"
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
	int a=10, b=200, c=-34, d=92;

	int result = CalHybrid(a, b, c, d);

	cout<<result<<endl;

	return 0;
}

3.6、把静态库文件链接到CallStaticLibrary工程中,选中工程,build options -> Debug(Release)  -> Linker settings -> Add -> ../test_lib/libtest_lib[linux_dbg_32].a (../test_lib/libtest_lib[linux_rel_32].a),运行结果为 -6256 正确;

4、  生成动态库并调用操作步骤:

4.1、Newfile ->Project… -> 选中Shared library, -> Go -> Next -> C++ -> Next: Project title:test_bin, Folder to create project in: /home/spring/CodeBlocks/ ,Project filename: test_bin.cbp , Resulting filename:/home/spring/CodeBlocks/test_lib/test_bin.cbp , Next ->: Compiler: GNU GCCCompiler ,选中Create”Debug”configuration和Create”Release”configuration,其它默认, ->Finish;

4.2、将上面用过的include和src两个文件夹复制到与test_bin.cbp同一目录下;

4.3、移除工程中生成的main.cpp文件,并将src和include的文件全部加载到此工程中,选中工程 ->Add files.. -> 选择所需文件;

4.4、打开此工程属性设置 ->Build targets:Debug下,Output filename改为bin/Debug/libtest_bin[linux_dbg_32].so, Release下,Outputfilename改为bin/Release/libtest_bin[linux_rel_32].so ,编译即可生成相应的动态库;

4.5、新建一个控制台工程,工程名为CallDynamicLibrary,其它默认,此工程main.cpp文件内容为与3.5相似,只把#include"../test_lib/include/hybrid.h"改为#include "../test_bin/include/hybrid.h"即可;

4.6、把动态库文件链接到CallDynamicLibrary工程中,选中工程,build options -> Debug(Release)  -> Linker settings -> Add -> ../test_bin/bin/Debug/libtest_bin[linux_dbg_32].so (../test_bin/bin/Release/libtest_bin[linux_rel_32].so),运行结果为 -6256 正确。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu下CodeBlocks的安装、配置及静态库动态库的简单使用举例 的相关文章

  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • 如何通过 makefile 在 Linux 上安装程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Linux Unix make install 应该包含什么 https stackoverflow com questions 528399 what should linux unix make
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 如何在C(Linux utf8终端)中打印“盒子抽屉”Unicode字符?

    我正在尝试显示 方框图范围 2500 257F 中的 Unicode 字符 它应该是标准 utf8 Unicode 标准 版本 6 2 我根本做不到 我首先尝试使用旧的 ASCII 字符 但 Linux 终端以 utf8 显示 并且没有显示
  • 使用 systemctl 获取 systemd 进程的正常运行时间或停机时间?

    喜欢使用systemctl is active
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可

随机推荐

  • Unity基础篇:Unity2D图集(2):将剪裁好的图片导出。

    转载http blog csdn net hongyouwei article details 45011315 这位大佬讲的很好 但是他没有很好地考虑到我等小白的感受 故在此补充说明 1 在Unity的Project窗口下的Assets里
  • Kubernetes:全面了解 Deployment

    本文为作者的 Kubernetes 系列电子书的一部分 电子书已经开源 欢迎关注 电子书浏览地址 https k8s whuanle cn 适合国内访问 https ek8s whuanle cn gitbook Deployment 是
  • C语言练习

    大家好啊 我是一名职高的学生 即将面临就业 在就业和升本中选择了升本 这四年期间学的专业是计算机网络技术 第一年学过C语言也都忘得差不多了 这个暑假重新开始学的C语言并且从今天起开始写博客 下面这些题目是我在书上和一些资料上做的编程题 都是
  • HashMap、HashTable和Vector的存储扩容解析

    HashMap HashTable和Vector是面试时比较高频问到的知识点 今天就从三个的底层源码的角度分析三者之间的存储 扩容原理和异同点 HashMap 实现Map接口 实现原理 HashMap采用链地址法 即底层是一个数组实现 数组
  • c语言中gets函数可以输入空格吗_C语言 gets()和scanf()函数的区别

    scanf 函数和gets 函数都可用于输入字符串 但在功能上有区别 若想从键盘上输入字符串 hi hello 则应该使用 gets 函数 gets可以接收空格 而scanf遇到空格 回车和Tab键都会认为输入结束 所有它不能接收空格 ch
  • 2023年探究区块链交易所开发:安全、效率和监管问题

    区块链技术已经成为数字经济领域的热门话题 随着数字资产市场的迅速发展 数字资产交易所也开始成为越来越重要的交易场所 本篇报告将从技术角度出发 探讨区块链交易所的开发 分析目前区块链交易所存在的问题以及未来的发展趋势 Background 区
  • Vue最常见的面试题以及答案(面试必过)

    Vue常见面试题 Vue的优点 说说你对SPA单页面的理解 它的优缺点分别是什么 SPA首屏加载速度慢的怎么解决 Vue初始化过程中 new Vue options 都做了什么 对MVVM的理解 Vue数据双向绑定原理 Vue的响应式原理
  • sqli-labs第十一关

    less11 POST Error Based Single quotes String 基于错误的POST型单引号字符型注入 第十一关开始进入登录框这种模式 像登陆框这种模式也是可以当成sql语句注入的 你想想啊 它动态的页面 通过pos
  • 【论文阅读】文献阅读笔记

    论文阅读 论文阅读笔记 逆向工程与自动化控制应用的视图规划问题综述 Conclusion 求解VPP 视图规划view planing 问题 建立一种扫描计划来对目标进行重建 通常可根据输入的数据类型进行定义采用的方法 方法1 基于目标对象
  • 清华同方台式计算机 U盘启动,清华同方台式机BIOS设置U盘启动方法

    清华同方计算机还以节能闻名 实现了稳定的销售增长 最近 清华同方计算机的一个用户问如何设置U盘启动 接下来是我为大家收集的清华同方台式机BIOS设置U盘启动的方法 欢迎大家阅读 清华同方台式机BIOS设置U盘启动方法 1 使用U教授制作启动
  • CSDN新导航的体验

    看到新导航有几天了 当时只有一个感觉 速度快了 今天开始正式使用了 却发现很大的不便 所谓不便 其实是习惯上的改变造成了我的不适应 用户习惯问题 我建议还是不要改变的好 一个界面看习惯了 突然换掉 一时接受不了 另外值得一提的是 也是很多C
  • lol8月7号服务器维护,LOL8月7日更新了什么内容 8.15新版本更新维护公告

    文章目录 LOL在今天也就是8月7日开启了一次新版本8 15版本的更新维护 这次的更新内容主要是针对8 1版本一些改动补充 所以内容不是非常的多 下面就来为大家详细的分享一下LOL的更新维护公告 亲爱的召唤师 LOL将在 8 月 7 日 4
  • python金融数据分析

    python金融数据分析 基金数据分析 https github com memsploitable foundsDataAnalysis git 股票数据分析 大行情数据分析 https github com memsploitable
  • Cow Land (树链剖分)

    测试链接 题面 Cow Land is a special amusement park for cows where they roam around eat delicious grass and visit different cow
  • 第一篇 香橙派刷机和开发环境准备(Armbian版)

    目录 一 香橙派刷机和SSH登录 1 格式化TF卡 2 烧写系统到TF卡 3 调试串口登陆系统 4 SSH登陆系统 1 nmcli命令 2 armbian config配置菜单 3 使用Xshell以SSH方式登陆 二 OrangePi开发
  • [灵魂拷问]MySQL面试高频100问(工程师方向)

    黑客技术 点击右侧关注 了解黑客的世界 Java开发进阶 点击右侧关注 掌握进阶之路 Python开发
  • 【chatGPT】让java程序员工作效率翻10倍技巧

    本来写给我自己用来着 想着以后忘记了就分享出来 1 写枚举 对于程序员来说枚举的命名需要大写并且写枚举也是被迫的 大部分人的感受都一样啊喂 所以可以直接用chatgpt偷懒 录入关键字 例 帮我写个java枚举 xxxxx 活动兑奖状态 0
  • Redis 学习笔记(十五)Redis Cluster 集群扩容与收缩

    Redis Cluster 集群伸缩 1 伸缩原理 Redis提供了灵活的节点扩容和收缩方案 在不影响集群对外服务的情况下 可以为集群添加节点进行扩容也可以对下线节点进行缩容 我们在Redis Cluster 介绍与搭建这篇文章中搭建了一个
  • 配置maven 阿里云镜像

    镜像配置为阿里云进项下载速度快 jdk配置为1 8
  • Ubuntu下CodeBlocks的安装、配置及静态库动态库的简单使用举例

    1 从Ubuntu Software Center中搜索Code Blocks并安装 2 在第一次启动时选择GNU GCC Compiler作为默认的编译器 3 生成静态库并调用操作步骤 代码同 http blog csdn net fen