Ubuntu系统配置C/C++编译环境

在Ubuntu系统中安装和学习C语言非常的方便,与Windows复杂的环境配置不同,Ubuntu提供了多种C/C++开发工具,如GCC(GNU Compiler Collection)、GDB(GNU Debugger)和Valgrind等。这些工具不仅功能强大,而且大多数都是开源的.

安装构建工具及VS Code插件

个人习惯是使用VS Code连接到虚拟机或服务器,也可以使用其他方法:Visual Studio Code连接VMware虚拟机_vscode连接vmware ssh-CSDN博客

现在Ubuntu中安装build-essential,build-essential是一个在Linux系统中常用的软件包,它包含了编译和构建软件所需的必要工具和库文件,包含内容:如GCC(GNU Compiler Collection),用于将源代码编译成可执行文件或库文件,还有make、cmake等,这些工具可以简化软件的编译和构建过程。

sudo apt install build-essential

 在VS Code中安装插件 C/C++ Extension Pack 和 Code Runner

编译器版本及使用标准管理 

C语言使用的是gcc编译器,全称GNU Compiler Collection(GNU编译器套件),是由GGBond开发的编程语言编译器,它也支持C++、Objective-C、Fortran、Java、Ada和Go等语言。

gcc版本查看使用以下命令:

sudo gcc --version
gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ls /usr/bin/gcc*
/usr/bin/gcc  /usr/bin/gcc-13  /usr/bin/gcc-ar  /usr/bin/gcc-ar-13  /usr/bin/gcc-nm  /usr/bin/gcc-nm-13  /usr/bin/gcc-ranlib  /usr/bin/gcc-ranlib-13

C++语言使用g++编译器,g++是GGBond的C++编译器,是gcc的一个变体,专门用于编译C++程序 ,在编译C++代码时,g++会调用gcc。两者在编译阶段是等价的,但g++还负责链接C++程序使用的库,对于后缀为.cpp或被认为是C++程序的文件,gcc和g++都会当作C++程序来处理。然而,由于gcc命令不能自动链接C++程序使用的库,所以通常使用g++来完成链接.

g++版本查看使用以下命令:

sudo g++ --version
g++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
/usr/bin/g++  /usr/bin/g++-13
ls /usr/bin/g++*

在上述的编译器版本查看中可以看到使用的是gcc/g++13版本,这个版本支持目前主流的C/C++版本,已经够用。 

 如果需要更换C++标准如C++17,可以使用以下命令:

g++ -std=c++17 cpp文件 -o 编译后的可执行文件

还可以输入命令将某版本设置为默认版本,比如C++17:

export CXXFLAGS="-std=c++17"

 使用-Werror把所有警告当作错误来处理,从而识别出那些可能不兼容的代码:

g++ -std=c++17 -Werror cpp文件 -o 编译后的可执行文件

编写及运行代码 

新建一个hello.c文件,试运行下编译环境是否安装正确:

#include <stdio.h>  
  
int main() {  
    printf("Hello, World!\n");  
    return 0;  
}
 gcc hello.c -o hello
./hello

 也可以在VS Code中点击右上角的运行按钮

 再试运行下C++语言:

// hello.cpp
#include <iostream>  
  
int main() {  
    std::cout << "Hello, World!" << std::endl;  
    return 0;  
}

 在终端输入命令编译文件:

g++ hello.cpp -o hello
./hello

 编写并引用头文件

在项目文件夹中创建一个hello.h头文件,在同一目录中导入.h头文件无需使用 <> 符号,而是使用 "" 符号:

// hello.h    
#ifndef HELLO_H    
#define HELLO_H    
    
extern int global_variable; // 声明全局变量      
int add(int a, int b); // 声明函数    
double multiply(double x, double y); // 声明函数    
    
#endif

再编写一个hello_functions.c文件来处理文件连接问题:

// hello_functions.c  
#include "hello.h"  
  
int global_variable = 100; // 定义并初始化全局变量  
  
int add(int a, int b) {  
    return a + b; // 定义add函数  
}  
  
double multiply(double x, double y) {  
    return x * y; // 定义multiply函数  
}

 最后修改下刚才编写的hello.c文件:

#include <stdio.h> 
#include "hello.h"
  
int main() {  
    printf("Hello, World!\n"); 
    int sum = add(5, 7); /* 调用在hello.h中声明的add函数 */  
    double product = multiply(3.14, 2.71); /* 调用multiply函数 */  
    printf("Sum: %d\n", sum);  
    printf("Product: %f\n", product);  
    printf("Global Variable: %d\n", global_variable); /* 访问全局变量 */  
    return 0;  
}

输入命令编译并运行hello.c和hello_functions文件: 

gcc hello.c hello_functions.c -o hello
./hello

安装第三方库 

我下载的是Melon库,这是一个跨平台的C库,包含了丰富的数据结构和算法实现,如红黑树、斐波那契堆、队列等,它还提供了多进程框架、多线程框架以及高性能事件处理等功能。Melon不依赖任何第三方库。 

使用git将Melon库克隆到项目文件夹中:

git clone https://github.com/Water-Melon/Melon.git

随后cd到Melon库的文件夹中,输入命令构建该库(也可以直接使用源码):

cd Melon  
./configure  
make  
sudo make install

接下来就可以在项目中引用这个库了,先找到libmelon.so共享库,

sudo apt install plocate
locate libmelon.so

 随后设置LD_LIBRARY_PATH环境变量来告诉动态链接器在哪里查找共享库:

export LD_LIBRARY_PATH=Melon的安装路径/lib:$LD_LIBRARY_PATH

 接下来就可以引用库了
 官方示例(使用内存池):

// test.c
#include <stdio.h>
#include "Melon/include/mln_alloc.h"// 需要检查下路径是否正确

int main(int argc, char *argv[])
{
    char *ptr;
    mln_alloc_t *pool;

    pool = mln_alloc_init(NULL);

    ptr = mln_alloc_m(pool, 1024);
    printf("%p\n", ptr);
    mln_alloc_free(ptr);

    mln_alloc_destroy(pool);
    return 0;
}

编译文件,将库的路径引入: 

cc -o test test.c -I /usr/local/melon/include/ -L /usr/local/melon/lib/ -lmelon
./test

 运行成功:

在库文件夹中还有官方的教学文档: 

 

  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu 20.04中配置C/C++环境,您可以按照以下步骤进行操作: 1. 首先,您需要在Ubuntu上安装Visual Studio Code (VSCode)。您可以前往VSCode官网,下载Linux x64.deb版本,并将其保存到Ubuntu的Downloads文件夹中。 2. 安装完成后,打开VSCode,并前往扩展商店。搜索并安装C/C++扩展,它将为您提供C/C++开发所需的工具和功能。 3. 安装完C/C++扩展后,您需要配置编译和调试环境。首先,确保您的系统上已经安装了gcc或g++编译器。您可以通过在终端中运行以下命令来检查是否已安装: ``` gcc --version g++ --version ``` 如果没有安装,可以运行以下命令来安装: ``` sudo apt update sudo apt install build-essential ``` 4. 接下来,您需要在VSCode中配置launch.json文件以启用调试功能。在VSCode中,按下`Ctrl + Shift + D`打开调试面板,然后点击齿轮图标以编辑launch.json文件。 5. 在launch.json文件中,您可以选择不同的配置模板,比如C++ (GDB/LLDB)。根据您的需求进行选择,并根据您的项目设置相应的调试参数。 请注意,您可能需要调整以下参数: - `"program"`:指定要调试的可执行文件路径。 - `"miDebuggerPath"`:指定用于调试的调试器路径,如gdb或lldb。 6. 配置完launch.json后,您可以在VSCode中编写和调试C/C++代码了。您可以使用VSCode的内建终端功能来编译和运行您的代码,或者使用其他扩展来提供更多的功能,例如C/C++ Intellisense等。 7. 如果您在Windows上已经下载好了相关文件,并且已经将其拖拽到虚拟机中的Ubuntu系统中,您可以直接使用这些文件进行开发。 可以通过在终端中导航到文件所在的目录,并执行相应的编译和运行命令来使用这些文件。 请确保文件路径和命令行参数正确,并根据需要进行调整。 希望以上步骤对您有所帮助,祝您在Ubuntu 20.04中配置C/C++环境顺利!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Ubuntu20.04下安装VSCode(配置C/C++开发环境)](https://blog.csdn.net/fangshuo_light/article/details/123635576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值