Linux下CMake中使用pthread多线程编程调试教程及错误分析


Linux下编写多线程的程序,需要使用到pthread.c库,使用gcc编译,不能直接

gcc product.c -o product

而是需要在命令的后面添加一个命令,gcc在编译的时候通过 -L参数 手动指定的搜索路径

gcc product.c -o product -lpthread

所以,对于调试过程,也要进行这个的静态库的调用,现在的问题就是如何在cmake中添加静态库。

VS Code插件

对于cmake来说,首先安装以下的插件

CMake

CMake tools

在这里插入图片描述

安装完毕后重新打开,在vscode的最下面可以看到以下的信息
在这里插入图片描述

CMakeLists编写

写一个最简单的CMake程序,这里对product.c文件进行编译调试,生成的可执行文件名称叫做result

cmake_minimum_required(VERSION 2.6)
 
project(vscode_cmake)

set(SRC_LIST product.c)
add_executable(result ${SRC_LIST})

保存之后就会出现提示信息
在这里插入图片描述

编译调试

第一步,debug

在这里插入图片描述
然后出现提示信息
在这里插入图片描述

第二步,kit

选择编译的套件,我这里选择了最新的gcc
在这里插入图片描述
输出结果
在这里插入图片描述

第三步,Build

在这里插入图片描述
没有出现问题

并且可以看到目录下出现了一些文件
在这里插入图片描述

执行

在这里插入图片描述
结果出现了报错,没有找到pthread的库函数

问题分析

添加命令

SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-pthread")

这样就可以链接进来我们需要的静态库

保存编译,但是之后仍然会报错
在这里插入图片描述
也就是pthread没有正确的链接到

这里出现问题的是CMAKE_CXX_FLAGS,因为product.c是我的程序文件,所以CMAKE_CXX_FLAGS需要修改成CMAKE_C_FLAGS,支持c语言,而不是默认支持c++

这里就要引出c和c++程序的不同

修改之后
在这里插入图片描述

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: CMake是一种跨平台的自动化构建工具,它可以帮助程序员在不同的操作系统和编译器上构建和测试软件项目。以下是一个简明的CMake教程: 1. 首先,安装CMake。在Linux系统上,可以使用包管理器进行安装。例如,在Ubuntu系统上,可以使用以下命令安装CMake: ``` sudo apt-get install cmake ``` 2. 创建一个新的工作目录,并进入该目录。假设该目录的名称为“my_project”。 ``` mkdir my_project cd my_project ``` 3. 在工作目录创建一个CMakeLists.txt文件,并将以下内容添加到文件: ``` cmake_minimum_required(VERSION 3.5) project(my_project) add_executable(my_executable main.cpp) ``` 4. 在工作目录创建一个源代码文件main.cpp,该文件将包含应用程序的主要功能。 5. 执行以下命令生成Makefile并编译程序: ``` cmake . make ``` 6. 编译完成后,运行可执行文件: ``` ./my_executable ``` 这是一个非常简单的CMake教程,仅仅介绍了如何使用CMake构建一个简单的应用程序。对于更复杂的项目,可能需要更详细的CMake配置。 ### 回答2: CMake是一种跨平台的编译程序,它可以自动生成Makefile和Visual Studio工程文件,支持Windows、Mac OS X和Linux等操作系统。本文将简要介绍在Linux使用CMake的方法。 1. 安装CMakeLinux下,你可以通过包管理器来安装CMake。 在Debian/Ubuntu系统安装CMake sudo apt-get install cmake 在Fedora系统安装CMake sudo dnf install cmake 在CentOS系统安装CMake sudo yum install cmake 在Arch Linux系统安装cmake sudo pacman -S cmake 2. 编写CMakeLists.txt文件 CMakeLists.txt是CMake的配置文件,用于指示CMake如何构建项目。 在你的项目根目录下创建CMakeLists.txt文件。 下面是一个示例CMakeLists.txt文件: cmake_minimum_required(VERSION 2.8) project(myproject) set(CMAKE_CXX_STANDARD 11) add_executable(myapp main.cpp) 3. 构建项目 在终端使用cd命令进入到你的项目目录,然后创建build目录,在build目录下执行cmake命令。 mkdir build cd build cmake .. 执行完cmake命令后,CMake会根据你的CMakeLists.txt文件生成一些Makefile或Visual Studio工程文件。 在Linux系统,你可以使用make工具来构建项目: make 4. 运行项目 在终端,进入到build目录下,执行生成的可执行文件即可: cd build ./myapp 这就是在Linux使用CMake的简单教程CMake可以帮助你轻松地构建项目,同时还支持多种操作系统和编译器平台,是一款非常方便的编译器工具。 ### 回答3: CMake是一个跨平台的自动化构建系统,提供了一种类似Makefile的配置文件,可以生成针对各种编译器的本地化makefile和其它构建系统文件。它能够简化开发和构建过程,使用户可以在多种不同的平台、编译器和操作系统上实现跨平台的构建。 CMake是在Linux使用的非常流行的构建系统,下面是CMake的简明教程: 1.安装CMake 使用以下命令安装CMake: sudo apt-get install cmake 2.建立项目目录 在自己的工作目录下新建一个子目录,并进入该目录。 3.创建CMakeLists.txt文件 在该目录下创建一个名为CMakeLists.txt的文件,这是CMake的核心文件,它定义了项目的编译、构建过程和依赖关系等。 4.添加源文件 在CMakeLists.txt文件添加源文件。源文件是指程序的源代码文件,包括头文件和源文件。 5.指定可执行文件名称 在CMakeLists.txt文件指定可执行文件的名称,使用add_executable命令即可。例如: add_executable(test test.c) 6.添加库文件和依赖库 在CMakeLists.txt文件添加需要的库文件及其依赖库,使用target_link_libraries命令即可。例如: target_link_libraries(test pthread) 7.编译项目 在项目目录下执行以下命令: mkdir build cd build cmake .. make 8.运行程序 在build目录下可以找到可执行文件,使用以下命令运行程序: ./test 总结:上述为一个简单的CMake教程,可以帮助开发者理解如何使用CMake管理项目,并且可以通过这个教程的基础上更加深入的学习CMake,在将来的开发更加灵活、高效的使用CMake来构建项目。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值