gcc 和缓存

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

我正在开发一个 C 程序,奇怪的是,当我更新源文件时,我没有看到生成的可执行文件有任何变化。 gcc 是否可能存储文件的缓存副本,即使我编译,我也无法获得可执行文件的较新版本?在这种情况下,如何强制编译器使用新编辑的文件?

我正在使用以下内容编译我的代码:

# gcc -o myExecFileName source_file_1.c source_file2.c
c gcc caching
3个回答
3
投票

回答你的问题,没有 gcc 不会缓存你的文件。 还有其他事情正在发生。 您要么按照 @Lee D 的建议更改不同目录中的文件,要么在编译之前没有保存文件,或者您所做的更改可能已被 ifdef 删除。


0
投票

听起来你的 makefile 不正常。

make
使用文件时间来确定是否运行编译步骤。不过,您必须拥有依赖项才能使其正常工作。

观察:

hello: hello.c
   $(CC) hello.c -o hello

在第一行,

hello: hello.c
表示查看文件
hello.c
上的时间戳,如果它比
hello
上的时间戳早(或者如果
hello
不存在),则运行下面指定的编译.


0
投票

检查以确保您编辑的文件与正在编译的文件相同。如果您在多个窗口中处理文件的多个版本,情况可能并非如此。上周发生在我身上。

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