gpt4 book ai didi

具有多个文件的项目中的 CMakeLists.txt

转载 作者:行者123 更新时间:2023-11-30 16:32:34 27 4
gpt4 key购买 nike

linking errors.你好。我有一个包含八个 .c 和八个 .h 文件的项目。我应该如何编写 CMakeLists.txt 来解决所有这些的依赖关系?创建库不是方法,因为每个文件都依赖于其他文件。谢谢!

我的 CMakeLists.txt 就像

  cmake_minimum_required(VERSION 2.8)
project(calc-2.4.0)
set(SOURCE_EXE main.c expmath.c interface.c container.c
polnot.c error.c getelem.c dbg.c
buildctrl.h expmath.h interface.h container.h
polnot.h error.h getelem.h dbg.h)
add_definitions(-Wall -O2)
add_executable(calc ${SOURCE_EXE})

cmake_minimum_required(VERSION 2.8)
project(calc-2.4.0)
set(SOURCE_EXE main.c expmath.c interface.c container.c
polnot.c error.c getelem.c dbg.c)
add_definitions(-Wall -O2)
add_executable(calc ${SOURCE_EXE})

所以 linter 无论如何都看不到定义。

最佳答案

没有必要将所有头文件添加到 CMakeLists.txt 中。添加头文件所在的文件夹就足够了。所需的 cmake 命令是 include_directories .

我的建议如下:

  • 添加所有 *.cpp 和仅 header 文件
  • 使用 include_directory 添加所有必需的头文件

示例:

  cmake_minimum_required(VERSION 2.8)
project(calc-2.4.0)
set(SOURCE_EXE main.c expmath.c interface.c container.c
polnot.c error.c getelem.c dbg.c
buildctrl.h
)
add_definitions(-Wall -O2)
include_directory(${CMAKE_CURRENT_SOURCE_DIR})
add_executable(calc ${SOURCE_EXE})
  • CMAKE_CURRENT_SOURCE_DIR 指向当前源目录
  • 我建议将源代码移至顶级 CMakeLists.txt 文件所在文件夹的子目录中。请参阅 Project Structure

关于具有多个文件的项目中的 CMakeLists.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50085566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com