CMake创建可执行文件及其依赖的库

项目文件结构

+-- demo
+----- Iadd
---------- add.h
---------- add.cpp
---------- CMakeLists.txt
+----- main
---------- include
+--------- src
--------------- main.cpp
---------- CMakeLists.txt
------ CMakeLists.txt
--  CMakeLists.txt

add.h

#pragma once

int add(int a, int b);

add.cpp

#include "Iadd/add.h"

int add(int a, int b)
{
    return a+b;
}

main.cpp

#include <iostream>
#include "Iadd/add.h"
using namespace std;

int main()
{
    int a = 10, b = 3;
    cout << add(a, b) << endl;
    return 0;
}

root CMakeLists.txt

cmake_minimum_required(VERSION 3.19)

project(demo VERSION 1.0)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(BUILD_SHARED_LIBS OFF)

include(CMakeDependentOption)

# ---- Include guards ----
if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
  message(
    FATAL_ERROR
      "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there."
  )
endif()

set(PROJECT_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(CMAKE_INSTALL_PREFIX "${PROJECT_ROOT_DIR}/bin")
set(BINARY_ROOT_DIR "${CMAKE_INSTALL_PREFIX}/")

add_subdirectory(demo)


demo CMakeLists.txt

set(DEMO_ROOT_DIR "${PROJECT_ROOT_DIR}/demo")

add_subdirectory(Iadd)
add_subdirectory(main)

add_dependencies(main add)

add CMakeLists.txt

set(TARGET_NAME add)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

file(GLOB_RECURSE ADD_HEADERS "*.h")
file(GLOB_RECURSE ADD_SOURCES "*.cpp")

add_library(${TARGET_NAME} ${ADD_HEADERS} ${ADD_SOURCES})

set_target_properties(${TARGET_NAME} PROPERTIES CXX_STANDARD 17)

target_include_directories(${TARGET_NAME} 
PUBLIC
    $<BUILD_INTERFACE:${DEMO_ROOT_DIR}>
)

main CMakeLists.txt

set(TARGET_NAME main)

file(GLOB MAIN_HEADERS CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h)
file(GLOB MAIN_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)

add_executable(${TARGET_NAME} ${MAIN_HEADERS} ${MAIN_SOURCES})

target_link_libraries(${TARGET_NAME} add)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,VSCode是一款开源且功能强大的集成开发环境(IDE),可用于编写多种编程语言,并拥有各种实用的插件和扩展。 要在VSCode中使用CMake生成可执行文件,您需要按照以下步骤进行操作: 1. 安装VSCode和CMake插件:首先,您需要在计算机上安装VSCode和CMake。在安装VSCode之后,您可以通过扩展市场安装CMake插件,这将使您能够在VSCode中使用CMake命令。 2. 创建CMakeLists.txt文件:在您的项目根目录下创建一个名为`CMakeLists.txt`的文件。这个文件是用来定义CMake构建项目所需的配置信息的。 3. 编写CMake配置:在`CMakeLists.txt`文件中,您需要编写CMake的配置指令,以告诉CMake如何构建您的项目。这些指令包括设置项目名称、设置编译器、添加源文件、定义可执行目标等等。 4. 打开终端:在VSCode中,您可以通过点击顶部菜单中的"终端"选项,然后选择"新终端"来打开终端。 5. 在终端中输入CMake命令:在打开的终端中,您可以输入CMake命令来生成可执行文件。例如,您可以使用`cmake .`命令来生成Makefile,并使用`make`命令来构建可执行文件。 6. 运行可执行文件:一旦构建完成,您可以在终端中运行生成的可执行文件。使用`./<可执行文件名>`命令来运行您的程序。 总结:通过安装VSCode和CMake插件,创建CMakeLists.txt文件并编写CMake配置,然后在VSCode中的终端中使用CMake命令来生成和构建可执行文件。然后,您可以使用终端来运行生成的可执行文件。希望这个回答对您有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值