Linux下C++开发

Linux下C++开发

Linux 系统介绍

简介

  1. Linux属于多用户多任务操作系统,而Windows属于单用户多任务操作系统
  2. Linux一切皆文件
  3. 目录结构
    • bin 存储二进制可执行文件
    • dev 存放的是外接设备,例如磁盘,光盘等。在其中的外接设备是不能直接被使用的,需要挂载
    • etc 主要存储一些配置文件
    • home 表示除了root用户以外,其它用户的家目录,类似于Windows下的User/用户目录
    • proc 全称process,表示进程,该目录存储的是Linux运行时候的进程
    • root 该目录是root用户自己的家目录
    • sbin 全称super binary,该目录也存储一些可被执行的二进制文件,但必须得有super权限的用户才能执行
    • tmp 当系统运行时候产生的临时文件会存放在这个目录
    • usr 存放的是用户自己安装的软件。类似于Windows下的program files
    • var 该目录存放程序/系统日志文件
    • mnt 当外接设备需要挂载的时候,就需要挂载在mnt目录下

常用命令

  1. time ./hello 测试hello程序执行的时间
  2. ls -lah /home ./ 以列表形式显示多个目录,-h表示以可读性较高的形式显示
  3. mkdir -p a/b/c 表示一次性创建多层不存在的目录
  4. mkdir a b c 创建多个目录
  5. man 全称an interface to the system reference manuals
    • 作用:包含了Linux中全部命令手册
    • man man 查看man命令的手册
    • man ls 查看ls命令的手册
  6. reboot 立即重启
  7. shutdown -h now 立即关机
  8. gedit a.txt 用可视化文本编辑器打开a.txt

常用快捷键

  1. ctrl+l 清屏
  2. ctrl+c 退出当前行
  3. ctrl+w 删除当前行一个单词
  4. ctrl+shift+'+' 放大TerminalUbuntu
  5. ctrl+'-' 缩小TerminalUbuntu
  6. ctrl+'+' 放大TerminalMingw64
  7. ctrl+'-' 缩小TerminalMingw64
  8. ctrl+alt+t 开启Terminal

安装常用软件

  1. sudo apt update 安装软件前,最好更新软件库
  2. sudo apt install tree 安装可以以树形方式浏览多层目录
  3. sudo apt install build-essential gdb 安装好gcc,g++,gdb
    • 查看是否安装成功:
      • gcc --version
      • g++ --version
      • gdb --version
  4. sudo apt install cmake 安装cmake
  5. sudo apt install libboost-dev 安装boost

开发环境搭建

GCC编译器

- 编译过程

  1. 预处理-Pre-Processing // .i文件
    # -E 选项指示编译器仅对输入文件进行预处理
    g++ -E test.cpp -o test.i    // .i文件
    
  2. 编译-Compiling // .s文件
    # -S 选项告诉g++在为C++代码产生了汇编语言文件后停止编译
    # g++ 产生的汇编语言的默认扩展名为 .s
    g++ -S test.i -o test.s
    
  3. 汇编-Assembling // .o文件
    # -c 选项告诉g++仅把源代码编译为机器语言的目标代码
    # 默认情况下,g++建立的目标文件有一个 .o 的扩展名
    g++ -c test.s -o test.o
    
  4. 链接-Linking // bin文件
    # -o 选项指定将来的可执行文件的文件名
    g++ test.o -o test
    

- g++重要的编译参数

  1. -g 编译带调试信息的可执行文件
    # -g 选项告诉GCC产生能被GNU调试器GDB使用的调试信息,以调试程序
    g++ -g test.cpp
    
  2. -O[n] 优化源代码
    # -O0 表示不做优化
    # -Og 表示不做优化 【有些g++版本不支持】
    # -O1 为默认优化
    # -O2 除了完成-O1的优化之外,还进行一些额外的调整工作,如指令调整等
    # -O3 包括循环展开和其它一些与处理特性相关的优化工作
    g++ -O2 test.cpp
    
  3. -l 和 -L 指定库文件 | 指定库文件路径
    # -l参数(小写) 指定程序要链接的库名
    # 在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接
    g++ -glog test.cpp
    
    # 如果库文件没有放在/lib和/usr/lib和/usr/local/lib,需要使用-L参数(大写)指定库文件所在的目录
    g++ -L/home/balingshang/mylibfolder -lmylib test.cpp
    
  4. -I 指定头文件搜索目录
    # /usr/include目录一般不需要指定,g++知道去那里找
    # 其它目录需要自己指定
    g++ -I/myinclude test.cpp
    
  5. -Wall 打印警告信息s
    g++ -Wall test.cpp
    
  6. -w 关闭警告信息
    g++ -w test.cpp
    
  7. -std=c++11 设置编译标砖
    # 使用 c++11 标准编译 test.cpp
    g++ -std=c++11 test.cpp
    
  8. -o 指定输出文件名
    g++ test.cpp -o test
    
  9. -D 定义宏
    # 在使用gcc/g++编译的时候定义宏
    
    # 常用场景:
    # -DDEBUG定义DEBUG宏,可能文中有DEBUG宏部分的相关信息,用-DDEBUG来选择开启或者关闭DEBUG
    
    #include <iostream>
    int main(int argc, char** argv)
    {
    #ifdef DEBUG
        std::cout << "In Debug" << std::endl;
    #else
        std::cout << "Not In Debug" << std::endl;
    #endif
    }
    // 1. 在编译的时候,使用 g++ -DDEBUG main.cpp
    // 2. 输出:In Debug
    
  10. man g++ 查看其它编译选项
    man<
### 回答1: LinuxC++开发是一种非常流行的编程方式,它可以利用Linux操作系统的优势,如高效、稳定和安全等特点,来进行C++程序的开发。在Linux下,C++开发者可以使用各种开发工具和库,如GCC编译器、Makefile、GDB调试器、Boost库等,来提高开发效率和程序质量。此外,LinuxC++开发还可以利用开源社区的力量,获取更多的资源和支持,从而更好地完成项目开发。 ### 回答2: Linux下C语言开发是一种基于Linux操作系统的程序开发方式,其最大的特点是开放源代码以及高度可自由配置的性质。Linux作为一款优秀的开源操作系统,广泛应用于互联网、移动设备和服务器等领域,其稳定、高效的运行性能和运维优势已深受众多企业和开发人员的青睐。 在Linux下使用C语言进行开发,需要掌握一定的基础知识和技能。首先,需要了解Linux系统的基本命令和操作,对于C语言的基础语法也需要掌握。其次,需要选择一款适合自己的C语言编译器,比如常用的gcc。针对Linux特殊的操作环境和调试、编译等方面,也需要额外学习相应的技能。 在进行Linux下C语言开发时,首先需要确定开发目标。目前,在Linux下的C语言开发可以包括应用程序、系统程序、嵌入式开发等。针对不同的开发目标,需要使用不同的开发工具和编译器。 在编写程序时,需要注意Linux系统的特殊性。比如,在Linux开发时需要使用头文件"unistd.h",使用fork()函数来创建新的进程。此外,由于Linux是多用户系统,所以需要进行用户和权限管理。同时,还需要注意程序的异常处理和错误输出等方面。 总的来说,Linux下的C语言开发是一项具有挑战性的工作,但其广泛应用和灵活性也为开发人员提供了很大的创造空间。通过深入的学习和实践,开发人员可以掌握Linux下C语言开发技能,为自己的事业发展和成长打下坚实的基础。 ### 回答3: 作为一位开发人员,从Windows转到Linux上做C开发,会面临不少挑战和改变。首先需要熟悉Linux的操作系统结构和命令行,了解不同的发行版之间的差异,这对于日常的开发来说非常重要。以下是几个值得注意的方面: 1.开发环境 最基础的开发环境包括GCC和GDB,这些开源工具在Linux上免费获得。如果需要集成开发环境(IDE),则可以选择Eclipse、Code::Blocks或者KDevelop。在部署时,通常使用GNU Autotools或CMake自动化构建工具。 2.编译器 在Linux上,GCC是一个标准的编译器,它支持多个平台和架构上的编译,包括ARM、x86、PPC和MIPS。GCC 的源代码是开源的,使得开发人员可以通过了解源代码的方式来增强对编译器的理解。 3.调试工具 调试工具推荐使用 GDB,这是一个命令行工具,可以进行高效的调试,以及研究你的代码中有可能出现的漏洞或者错误。另外,Valgrind工具可以用来检测内存泄漏问题以及程序的性能分析。 4.Linux 系统调用 Linux系统提供了大量的系统调用,其中一些是比较常用的,如read( ),write( ),open( )和close( )。开发人员需要从C标准库中了解并使用这些系统调用。 5.理解文件系统 Linux提供了一个树形文件系统,需要熟悉不同的目录及其作用,理解Linux文件系统的概念是非常重要的。当你编写的C程序需要读取或写入文件时,你需要确定文件系统中的路径和文件权限。在Linux上,路径名中的所有字符都是小写字母。 总的来说,Linux下的C开发需要对操作系统的了解比较深入,因此要花费比较长的时间去了解和学习。但是一旦掌握了Linux的知识之后,在开发时会发现Linux下的工具链和命令行的终端有很多实用性,它们都有助于提高代码的效率和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值