ubuntu开发环境

news2024/10/7 12:29:37

boost介绍

Boost是一个广受欢迎的、开源的C++程序库集合,提供了许多高质量和可重用的组件,涵盖了广泛的领域,如容器、算法、函数对象、日期与时间、正则表达式、文件系统、线程等。Boost旨在通过提供开发人员友好的C++工具和组件来增强C++的功能。

以下是一些Boost库的例子:

  1. Boost.Array: 提供了固定大小数组的支持。
  2. Boost.Asio: 提供异步网络编程和底层I/O操作的功能。
  3. Boost.Filesystem: 提供了文件系统的操作和管理功能。
  4. Boost.Regex: 提供了正则表达式的支持。
  5. Boost.Thread: 提供了跨平台的多线程编程接口。
  6. Boost.Smart_Ptr: 提供了智能指针的实现,用于管理动态分配对象的生命周期。
  7. Boost.Serialization: 提供了对象序列化和反序列化的功能,便于数据的存储和传输。

Boost还包含许多其他功能丰富的库,每个库都经过精心设计和广泛测试,以提供可靠和高效的功能。由于其高质量和广泛应用,Boost被许多C++开发者广泛使用,并被视为C++开发的重要工具之一。

boost安装

官网下载安装包

Boost C++ Libraries

下载boost_1_82_0.tar.gz

//解压文件
tar -xzvf boost_1_82_0.tar.gz

//切换路径
cd boost_1_82_0

//运行当前目录中名为 "bootstrap.sh" 的脚本
sudo ./bootstrap.sh

//安装
sudo ./b2 install

//更新共享库缓存
ldconfig

 Qt Creator

Qt Creator 是一个跨平台的集成开发环境(IDE),专门用于开发基于 Qt 跨平台应用程序。以下是 Qt Creator 的一些特点和功能:

  1. 跨平台支持:Qt Creator 可在 Windows、Mac 和 Linux 等多个操作系统上运行,使开发人员能够轻松进行跨平台应用程序的开发。

  2. 集成的开发工具:Qt Creator 提供丰富的集成工具,包括代码编辑器、调试器、可视化界面设计器和项目管理器等。这些工具协同工作,提高了开发效率。

  3. 代码编辑器:Qt Creator 的代码编辑器具有语法高亮、自动完成、代码导航、代码模板和代码重构等功能。它支持多种编程语言,包括 C++、QML、JavaScript 等。

  4. 可视化界面设计器:Qt Creator 具有直观易用的可视化界面设计器,在设计和布局用户界面时提供了快速、交互式的方式。你可以通过拖放和调整控件来构建界面,并实时预览效果。

  5. 调试和分析:Qt Creator 集成了强大的调试器,可帮助你在应用程序中进行断点调试、变量查看和堆栈追踪等操作。此外,还提供了性能分析工具,用于检测和解决应用程序性能问题。

  6. 版本控制集成:Qt Creator 支持常见的版本控制系统,如 Git、Subversion 和 Mercurial。它提供了直观的界面,让你可以方便地管理代码库、提交更改和查看历史记录。

  7. 插件扩展:Qt Creator 具有可扩展的体系结构,允许通过插件添加新的功能和工具。你可以根据需要安装和使用第三方插件,以满足自己的开发需求。

总之,Qt Creator 是一个功能齐全且易于使用的集成开发环境,为基于 Qt 框架的跨平台应用程序开发提供了强大的支持和工具。无论是小型项目还是大型应用程序,Qt Creator 都能提供高效的开发体验和丰富的功能集。

下载在线安装包的链接

https://mirrors.nju.edu.cn/qt/official_releases/online_installers/

安装过程略

git安装

//============安装git==========
sudo apt-get install git
sudo apt-get update
git --version
git config --global user.name "xxx"和 git config --global user.email "你的邮箱地址"

//(注意ssh与-keygen之间没有空格),会在用户目录~/.ssh/下建立相应的密钥文件。
ssh-keygen -C 'you email address@gmail.com' -t rsa

cmake安装

sudo apt-get install cmake

glog和gflags

=========安装gflags===========
git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make -j4
sudo make install
sudo ldconfig



============安装glog============
git clone https://github.com/google/glog
cd glog
mkdir build && cd build
cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make
sudo make install

glog 和 gflags 是 Google 提供的两个开源 C++ 库,用于处理日志记录和命令行参数解析。

  1. glog(Google Logging Library):

    • glog 是一个高效、灵活的日志记录库,旨在提供简单易用的日志记录功能。
    • 它支持多种日志级别、灵活的日志格式化选项以及对日志文件的自动轮转和大小限制等特性。
    • 使用 glog 可以方便地在应用程序中记录和管理日志,帮助定位和调试问题。
    • glog 还提供了线程安全的日志记录功能,可以同时在多个线程中记录日志,避免竞争条件。
  2. gflags(Google Commandline Flags):

    • gflags 是一个命令行参数解析库,可用于解析和读取应用程序的命令行参数。
    • 它提供了一种方便的方式来定义、注册和访问命令行参数,支持不同类型的参数(如布尔型、整型、字符串型等)。
    • 在应用程序启动时,gflags 可以自动解析命令行参数并将其存储为相应的变量,然后可以在程序中使用这些变量进行逻辑判断或配置操作。
    • gflags 还支持多种参数的校验和默认值设置,并提供了详细的文档和帮助信息,方便用户查阅和使用。

这两个库常常一起使用,可以极大地简化 C++ 应用程序的日志记录和命令行参数处理过程。glog 和 gflags 都是Google开源的高质量工具库,在许多 C++ 程序中得到广泛地应用。

ssh

SSH(Secure Shell)是一种用于在不安全的网络中进行安全通信的协议。它通过加密技术和身份验证机制保护数据的传输,使得远程登录、文件传输和命令执行等操作变得更加安全可靠。

以下是 SSH 的一些重要特点和功能:

  1. 安全性:SSH 使用加密算法对数据进行加密,包括用户认证信息、传输内容和命令。这确保了在不安全的网络中敏感数据的保护,防止数据被窃听、修改或篡改。

  2. 远程登录:SSH 允许用户在远程计算机上进行安全登录。用户可以通过终端应用程序使用 SSH 协议连接到远程主机,并输入用户名和密码以进行身份认证。登录后,用户可以执行命令和管理远程主机。

  3. 文件传输:SSH 支持安全的文件传输功能。通过 SCP(Secure Copy)协议或 SFTP(SSH File Transfer Protocol),用户可以在本地计算机和远程主机之间传输文件,确保传输过程中的数据安全性。

  4. 端口转发:SSH 支持端口转发功能,允许用户在远程主机和本地主机之间建立安全的通信通道。这对于安全访问内部网络资源、隧道连接和跳板主机等场景非常有用。

  5. 密钥认证:除了用户名和密码的身份验证方式,SSH 还支持密钥认证。用户生成一对公钥和私钥,并将公钥放置在远程主机上。通过密钥认证,用户可以免去输入密码进行身份验证,提高安全性和便利性。

总的来说,SSH 提供了一种安全、加密的通信方式,可用于远程登录、文件传输和安全通信等场景,保护用户数据的安全性和隐私。

//=============ssh安装及使用==========//
ps -e|grep ssh
1.sudo apt-get install ssh
2.sudo /etc/init.d/ssh start
3.ssh-keygen -f "/home/guo/.ssh/known_hosts" -R 10.0.4.218   移除以前的记忆
4.ssh test@192.168.135.249

解决-lGL找不到的问题

在linux下安装的qtcreator,在编译工程时,报错:“cannot find -lGL”,这种错误一般有如下两种原因:

一种是没有安装libGL库,那么就重新安装:sudo apt-get install libgl1-mesa-dev

一种是装了,但是路径不对,那么需要重新配置一下路径:

先通过locate查询下,的确有libGL库,如下示:

$ locate libGL

/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13.0
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.13
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.13.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/libhybris-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/libhybris-egl/libGLESv2.so.2.0.0
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0

$ sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so

完成之后,再重新编译工程,问题解决。

Qt5WebEngine使用问题

.../libQt5WebEngineCore.so
undefined reference to PK11_SignWithMechanism@NSS-3.22

1.sudo apt-get install libnss3

若提示已是最新版本2.3.30,那怎么办呢?

sudo vi /etc/apt/sources.list

在该文件最后添加

deb http://cz.archive.ubuntu.com/ubuntu trusty-updates main

保存退出,执行命令sudo apt-get update

然后在次执行命令sudo apt-get install libnss3,如下

infodetail-2767667.html

再执行原来的命令就可以了:

[email protected]:/opt/VSCode-linux-x64$ ./code,正常启啦

Qt工程集成三方库

.pro文件中添加

INCLUDEPATH += /usr/local/include/boost
LIBS += /usr/local/lib/libboost_thread.a
LIBS += /usr/local/lib/libboost_system.a

INCLUDEPATH += /usr/local/lib/include
LIBS += -L./usr/local/lib -lglog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云主机详解:ECS/轻量/虚拟主机/GPU/裸金属/云电脑详解

阿里云云主机分为云虚拟主机、云服务器ECS、轻量应用服务器、GPU云服务器、弹性裸金属服务器、专有宿主机、FPGA云服务器、高性能计算E-HPC、无影云电脑等,阿里云百科来详细说下阿里云云主机详解: 目录 阿里云云主机 云服务器ECS 轻量应用服务器 云…

博泰应宜伦:把Vision Pro放大二十倍,就是未来汽车的终极形态

作者 | Amy 编辑 | 德新 新能源是上半场,智能化是下半场。 而随着智能汽车发展,智能座舱也不断革新,过去智能座舱的各项功能全面开花,竞争愈演愈烈,未来的座舱将如何被定义? 6月15日,博泰车联…

微信小程序手机号授权登录

文章目录 小程序端服务端注意事项 微信小程序,手机号授权登录需求。 大体流程是这样的: 小程序端使用 getPhoneNumber 向微信平台获取授权通过微信授权后,小程序端接收微信授权后的回调小程序携带微信的回调请求自己的服务端服务端请求微信获…

QML 模型和视图

模型/视图架构简介 使用 QML 时,有些情况下需要使用模型视图结构显示一些列表等控件,比较好的方式是用 Python 接管数据模型部分,方便处理数据;QML 和 JavaScript 负责前端部分,实现前端和后端的分离。 MVD 简介 Mo…

C# 特性(一)——什么是特性

目录 什么是特性 Serializable DllImport Obsolete Conditional Attribute类 自定义特性 AttributeUsage的使用例子 特性非常常见,官方解释为: 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法…

【批处理DOS-CMD命令-汇总和小结】上网和通信相关命令-查看路由表,查看网卡GUID UUID(route、getmac)

一、查看、编辑路由表(route) 首先我们看看route命令的帮助信息,可以发现这个命令其实就是用来查看路由表、以及添加(或编辑、删除)路由项目的。 路由项目是指操作系统对数据包的导向规则,往往包括目标IP…

《统计学习方法》——条件随机场#习题解答#

引言 这是统计学习方法第十一章条件随机场的阅读笔记,包含所有公式的详细推导。 条件随机场(conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。 建议先阅…

【计算机网络】为什么是TCP四次挥手,可以变成三次吗?

【计算机网络】为什么是TCP四次挥手,可以变成三次吗? 文章目录 【计算机网络】为什么是TCP四次挥手,可以变成三次吗?引言TCP 四次挥手为什么 TCP 挥手需要四次呢?粗暴关闭 vs 优雅关闭 什么情况会出现三次挥手&#xf…

MySQL—SQL优化详解(下)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

FFmpeg 内存模型分析

标题 1. 内存模型图2. 分析流程3.追溯本源————源码分析3.1 AVPacket队列 什么时候生成的? 4 .AVPacket和AVFrame相关操作API5. av_read_frame源码分析 1. 内存模型图 2. 分析流程 我们解复用后,媒体流数据就会被分离开来,分别生成对应AVPacketList,然后通过av_…

BART论文解读

1 概述 全称:Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension。BART来源于Bidirectional and Auto-Regressive Transformers发表时间: 2019.10.29团队:Facebook AI Paper地址​arxiv.o…

chatgpt赋能python:Python怎么求解方程

Python怎么求解方程 在数学中,求解方程是一种基本的技能。Python作为一种广泛应用于科学计算和数据分析领域的编程语言,可以帮助我们求解各种类型的方程。Python提供了多个库和函数,使得求解方程在Python中变得非常轻松。 一元方程求解 一…

Android Framework分析SystemServer进程

SystemServer进程是Android系统的核心进程,运行在Android系统启动后,负责管理和加载系统服务。本文将介绍SystemServer进程的详细结构和工作原理,并使用代码注释的方式阐述其关键部分代码。 结构: SystemServer进程的核心是Syste…

SSH基本概念,带你了解SSH

1、SSH基本概念 SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地传输数据。它是一种加密协议,可以保护数据在传输过程中不被窃取、篡改或伪造。SSH协议最初是由芬兰的Tatu Ylonen开发的,现在已经成为了一…

Hadoop集群之模板虚拟机的安装

Hadoop集群之模板虚拟机的安装 文章目录 Hadoop集群之模板虚拟机的安装0. 写在前面1. CentOS的安装1.1 配置电脑1.1.1 进入VMware1.1.2 自定义新的虚拟机1.1.3 解决虚拟机的兼容性1.1.4 选择当前虚拟机的操作系统1.1.5 选择虚拟机将来需要安装的系统1.1.6 电脑的具体配置1.1.7 …

KUKA机器人通过示教器进行关机冷启动的具体方法演示

KUKA机器人通过示教器进行关机冷启动的具体方法演示 如下图所示,首先需要登录管理员权限,默认密码:KUKA,然后点击左上角的机器人图标进行菜单选项,找到并点击“关机”选项, 如下图所示,找到并点击“重新启动控制系统PC”, 如下图所示,此时系统提示:确实要重新启动…

chatgpt赋能python:Python生成序列的方法详解

Python生成序列的方法详解 在Python编程中,序列(Sequence)是常用的数据类型之一。序列是有序的,可以通过下标访问其中的元素。Python中有多种方法可以生成序列,下面将对常用的几种方法进行详细介绍。 利用range函数生…

2023-06-16 Android Studio 使用CMakeList编译JNI ,最简单的demo源码

一、代码结构图,代码路径https://download.csdn.net/download/qq_37858386/87913001 二、cmakedemo\app\build.gradle 加下面的代码 externalNativeBuild {cmake {cppFlags "-frtti -fexceptions"}}externalNativeBuild {cmake {path src/main/jni/CMakeL…

国内大模型研究

自从chatgpt发布以来,国内大模型发展非常迅速。我对这项目技术也保持了非常多的持续关注,我一直认识,chatGPT以及其他GPT会给社会带来更大的变革。经过专业训练的大模型可以替代部分客服,部分程序员,部分美工&#xff…

Vue全家桶实战 从零独立开发企业级电商系统(免费升级Vue3.0)

Vue全家桶高仿小米商城–项目简介 文章目录 Vue全家桶高仿小米商城--项目简介电商项目选型--小米商城的页面流程:业务开发流程:项目内容:商城组件部分:课程所包含的知识图谱:章节介绍: 商城的界面展示&…