当前位置: 首页 > 面试题库 >

CMAKE自动头文件依赖

缪升
2023-03-14
问题内容

我有具有main.c main.h和CMakeLists.txt的示例程序目录

main.h的内容是

#ifndef MAIN_H
#define MAIN_H
int t=3;
int y=2;
#endif

main.c的内容是

#include <main.h>
#include<stdio.h>
int main(){

  printf("%d apple",t);
}

和CMakeLists.txt

PROJECT( test )
AUX_SOURCE_DIRECTORY(. test_SRCS)
include_directories(.)
ADD_EXECUTABLE (main ${test_SRCS})

但是cmake不会在修改头文件时重建main.c。我希望它自动生成头文件依赖项。有可能使用cmake吗?

如果没有,还有其他工具可以做到吗?


问题答案:

如我的评论中所述,我已经尝试了您的示例,并且一切正常:如果main.h进行了修改,则将main.c重新编译。

我的CMake安装(版本2.8.0)告诉我要添加

cmake_minimum_required(VERSION 2.8)

CMakeLists.txt文件,但这就是我需要的所有调整。



 类似资料:
  • 4. 自动处理头文件的依赖关系 现在我们的Makefile写成这样: all: main main: main.o stack.o maze.o gcc $^ -o $@ main.o: main.h stack.h maze.h stack.o: stack.h main.h maze.o: maze.h main.h clean: -rm main *.o .PHONY: clea

  • 我有两个带有CMake的git存储库,一个是游戏引擎,另一个是我正在用游戏引擎制作的游戏。 原来,这个游戏引擎有一个子模块包含在项目的cmakelists.txt中,而在游戏存储库中,游戏引擎被添加为一个子模块,也包含在cmakelists.txt中。但是在编译两个项目的时候,游戏引擎编译一切正常,没有错误,我更新游戏知识库更新子模块,而在编译游戏的时候,不知什么原因没有找到游戏引擎子模块。 游戏

  • 3.2.1 自定义头文件调用 需求:设计头文件,可执行文件本身作为源文件。 流程: 编写头文件; 编写可执行文件(同时也是源文件); 编辑配置文件并执行。 1.头文件 在功能包下的 include/功能包名 目录下新建头文件: hello.h,示例内容如下: #ifndef _HELLO_H #define _HELLO_H namespace hello_ns{ class HelloPub

  • 我有以下项目结构: cmakelists.txt lib1/cmakelists.txt以及lib的所有cpp和头文件 lib2/cmakelists.txt以及lib的所有cpp和头文件 app/cmakelists.txt和应用程序的所有cpp和头文件 它生成了我想要的源代码外的VS.sln文件,但是应用程序不能编译,因为它找不到lib1的头文件(显然)。 现在,我阅读并尝试了许多方法,比如(

  • 问题: 我在软件中有3个部分: 客户A服务 客户B服务 目标C服务 我想从A和B连接到C 我写了一个库,设置如下: /src/main/java/pkg/TargetConnector。爪哇 我的客户A和B都有自己的来源和财产: /src/main/java/pkg/客户端{A/B}服务。爪哇 /src/main/java/pkg/客户端{A/B}配置。爪哇 /src/main/resources

  • hana for visual studio 2017 库所提供的所有头文件的列表 boost hana concept applicative.hpp comonad.hpp comparable.hpp constant.hpp euclidean_ring.hpp foldable.hpp functor.hpp group.hpp hashable.hpp integral_constan