项目中的CMakeLists.txt包含多个文件

时间:2018-04-29 10:25:09

标签: c cmake

linking errors. Hellow。我有一个包含8个.c和8个.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无论如何都看不到定义。

1 个答案:

答案 0 :(得分:0)

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

我的建议如下:

  • 添加所有* .cpp和仅标题文件
  • 使用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
相关问题