`

【Linux】 C++编程(vim)

 
阅读更多

一,编译(compile)

含义:用编译器(compile)将源代码生成二进制目标文件。在Window下为.obj。在Linux下为.o文件。

要求:编译器要求,语法正确。编译器只检测程序语法和函数、变量是否被声明,函数并不许要被定义。

编译语法:g++ -c file.cpp 其中-c 为compile生成 file.o的目标文件

二,链接(link)

含义:将所有需要到函数所在的文件爱你链接在一起合成为可执行文件。

语法:g++ file.o -o file.exe 其中-o 指生成可执行文件(output)。默认为a.out


【合并】g++ file.cpp -o file.exe

三,库(library)

含义:对于一个源文件很多的大项目,为了避免重复编译,也为了方便编译器链接,通常会把一些常用到的目标文件打包(archive),于是就成为了传说中的库文件(library)。在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件

语法:1)ar -- create, modify, and extract from archives.
@Usage: ar cr lib****.a file1.o file2.o // **** 为自定义的库文件名。
标签 c (create):如果库不存在,则创建库;
标签 r (replace):如果库中已存在要添加的对象文件,则旧的对象文件将被替换。

实际上 ar 只是一个打包工具,是archive(打包)的首字母。它将一系列的目标文件首位连接在一起,并内嵌一个索引表,使得编译器能够方便地找到所需要的函数。一般来说,由于函数索引表的存在,对库的链接要比对一般的对象文件的链接更快。如果 ar 未能完成此项索引表工作,还可以手动用以下的 ranlib 命令创建索引表。

2) ranlib -- generate index to archive.
@Usage: ranlib lib****.a

3) nm -- list symbols from object files.

nm可以用来显示 ranlib 所构建的索引表。你将会看到所有库里的函数名(除了模板函数template function)。


四, 在编译时链接库

创建了自己的库,以后要用到相关函数的时候,只需在代码中声明所要用的函数(必须和库中定义得相同)。在链接的时候,需要给出库的名称和位置:

g++ file1.o file2.o -o program.exe -L**** -l****

-L 后紧跟库文件所在的目录地址,-l 后紧跟库名。

编译器在链接的时候会在所指定的目录地址下寻找名为 lib****.a 的库文件。






分享到:
评论

相关推荐

    Linux下由VIM搭建C/C++开发环境介绍

    Linux 作为一个开源的操作系统,广泛应用于服务器、嵌入式系统、移动设备等领域,而 C/C++ 作为最基础的编程语言,广泛应用于操作系统、应用程序、嵌入式系统等领域。为了搭建一个好的 C/C++ 开发环境,在 Linux ...

    linux下编程工具vim配置

    综上所述,通过配置vim、ctags、cscope等工具,并结合vundle管理各种插件,可以将vim打造成为一款强大的C/C++ IDE。在实际使用中,根据个人需求调整配置文件,可以进一步优化开发环境,提升编码效率。

    linux下C++入门资料

    在Linux环境下学习C++编程是一项挑战,但也是充满乐趣的过程。这个入门套餐为你提供了一系列的资源,涵盖了从基础知识到高级技巧的多个方面。以下是一些关键知识点的详细说明: 1. **C++基础**:`C++初学者入门全篇...

    linux编程工具vim的插件配置合集

    Linux编程工具Vim是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。它的可扩展性是其魅力之一,通过安装各种插件,可以极大地提升编辑效率和功能多样性。本合集包含了一系列主流的Vim插件配置,适用于文本...

    Linux下C C++编程之编程环境的搭建

    在Linux环境下进行C和C++编程,首先需要安装并配置一套完整的开发工具链。这篇教程将带你一步步构建一个高效的编程环境。以下是你需要了解的关键步骤和相关知识点: 1. **安装GCC编译器**:GCC(GNU Compiler ...

    Linux操作系统下C++编程

    在Linux操作系统下进行C++编程,虽然流程与Windows环境下大致相同,但具体工具和操作步骤有所差异。在Windows中,用户通常使用像Turbo C++(TC),Borland C++(BC)或Visual C++(VC)这样的集成开发环境(IDE),...

    NOI2.0评测系统使用指南、NOI Linux 2.0 和 Vim 指北.pdf

    【NOI Linux 2.0】是专为信息学竞赛设计的操作系统,内置了必要的编程环境,如GCC编译器、GDB调试器、Vim编辑器等。该系统优化了对于C++、Python等编程语言的支持,特别适合进行算法竞赛和程序设计。NOI Linux 2.0的...

    linux shell-vim

    GDB是一个强大的源代码级调试器,支持多种编程语言,如C、C++、Python等。了解如何设置断点、查看内存、单步执行代码、检查变量值等技巧,可以帮助开发者在遇到程序错误时有效地定位和解决问题。 综上所述,Linux ...

    linux环境下的c++编程.pdf

    Linux 环境下的 C++ 编程 在 Linux 环境下,C++ 编程有很多选择,因为 Linux/Unix 下 C++ 开发可谓五花八门,各式各样。从编辑器到编译器、调试器、文档生成工具等都有很多选择。与 Windows 下的集成开发环境 IDE ...

    linux编程基础.ppt

    VIM是一种强大的文本编辑器,支持多种编程语言,它的使用包括基本编辑、查找替换、多窗口编辑等,是Linux开发者常用的工具之一。 除了VIM,Linux下还有其他IDE,如Eclipse、Code::Blocks等,它们提供了更全面的开发...

    c/c++完整视频教程(三)——–Linux服务器编程

    根据提供的文件信息,本篇文章将围绕“C/C++完整视频教程(三)——Linux服务器编程”这一主题展开,深入解析该教程所涵盖的关键知识点。由于实际视频内容无法直接获取,以下解析将基于标题、描述及标签提供的信息...

    Linux命令 + C++API.zip

    在IT领域,Linux操作系统和C++编程语言是两个至关重要的组成部分。这个名为"Linux命令+C++API.zip"的压缩包文件显然集成了这两个主题的重要资料,旨在帮助开发者更有效地理解和运用它们。接下来,我们将深入探讨其中...

    vim配置包,linux若要使用vim,需要先安装vim包

    此外,Vim支持各种编程语言的语法高亮,如Python、Java、C++等,这使得代码更易于阅读。Vim还支持多窗口编辑,可以通过`:sp`(水平分割)或`:vs`(垂直分割)命令打开新窗口。 对于更高级的使用,Vim有强大的插件...

    Linux编程很全的资料

    这个压缩包包含了丰富的Linux编程资源,涵盖了shell脚本编程、GCC编译器使用以及C++编程等多个关键领域。下面将详细阐述这些知识点。 首先,Linux GCC编程讲座是理解如何在Linux环境下进行程序开发的重要资源。GCC...

    Linux下vim智能匹配

    【Linux下vim智能匹配】是Linux环境中使用vim编辑器进行高效编程的一种技术,特别是对于C++等需要大量引用对象成员的编程语言来说,这一特性极大地提升了开发效率。vim作为一个强大的文本编辑器,拥有丰富的插件和...

    linux下vim的自动补全的插件

    "linux下vim的自动补全的插件"正是这样一个话题,它旨在提升Vim的用户体验,让编程更加高效。 Vim的自动补全功能主要通过插件来实现,其中比较著名的有YouCompleteMe、Neocomplete、AutoComplPop等。这些插件能够...

    linux-vim的一个微妙优雅的配色方案

    此外,由于Vim支持多种编程语言,colibri配色方案也能适应Python、Java、C++、JavaScript等不同语言的语法高亮,使得代码更加清晰易读。 总的来说,选择一个适合自己的Vim配色方案是提升开发效率和保持良好工作状态...

    Linux系统中vim设置tab键的宽度

    在Linux系统中,Vim是一款极其强大的文本编辑器,它提供了丰富的配置选项,使得用户能够根据个人需求定制编辑环境。本文将深入探讨如何在Vim中设置tab键的宽度,以及这一设置对代码编写和阅读体验的影响。 ### Vim...

    Linux下vim编辑器智能匹配工具

    在C++编程中,这尤其有用,因为C++是一种面向对象的语言,涉及类、对象、成员函数等复杂结构。通过按下`Ctrl + ]`,vim可以在当前文件中跳转到光标所在单词的定义处,这对于理解和调试代码非常方便。而按下`Ctrl + o...

Global site tag (gtag.js) - Google Analytics