在 VSCode 中使用 CMake 自动构建 C 项目

问题描述 投票:0回答:1

首先介绍一下背景,我已经有 10 多年没有用 C 编程了,但现在我有一个想做的副项目。 我曾经在 MS Visual Studio 或 Linux 上使用 Code::Block 进行编码,它的美妙之处在于我不关心如何构建,它只是构建,所以我可以专注于我的代码。

不,我想使用 VSCode,因为这是我做 JavaScript 项目和其他东西的第一个 IDE。我可以编译一个简单的 C 文件,但是包含更多 c/h 文件的更复杂的项目对我来说失败了。我尝试了各种扩展,例如 Make、CMake……但没有成功。

我在这上面浪费了一天的时间,所以我希望你能帮助我完成以下项目结构:

project_folder
        |
        -- main.c
        |
        -- src/
        |   |
            -- engine.c
        |
        -- include/
        |       |
        |       --core/
        |           |
        |           -- engine.h


main.c:
-----------
#include <core/engine.h>

int main() {
        ...
        ...
}

当我尝试编译时,它找不到,我希望 CMake 扫描所有文件夹并自行解决问题,但事实并非如此。 我使用 Linux (Ubuntu),并且更喜欢使用 CMake 作为构建工具。 我真的希望你能在这方面帮助我。

c++ c visual-studio-code cmake makefile
1个回答
0
投票

让我们暂时忽略 vscode。如果您有一个可用的 cmake 项目,您可以从该项目向后工作并将其导入到 vscode 中。

在您的文件夹

project_folder
下,您应该创建了一个
CMakeLists.txt
文件。在这个文件中你应该有类似的东西

cmake_minimum_required(VERSION 3.28)
project(c_solution C)

set(CMAKE_C_STANDARD 99)

add_executable(c_solution src/engine.c)
target_include_directories(c_solution PRIVATE include)

或等效的东西,假设引擎是可执行文件而不是库。

鉴于您处于

project_folder
,那么您应该能够运行

mkdir build
cd build
cmake ..
cmake --build .

并且可执行二进制文件应该位于您的

project_folder/build
文件夹中。

从这里您可以将解决方案导入 vscode 并使用他们的插件。它将插入到已经创建的 cmake 项目中。

也就是说,我强烈建议研究如何 cmake 作为 vscode 之外的构建工具,因为它只是一个 ide,而 cmake 是一个独立的构建工具。

© www.soinside.com 2019 - 2024. All rights reserved.