我正在开发一个 C 程序,奇怪的是,当我更新源文件时,我没有看到生成的可执行文件有任何变化。 gcc 是否可能存储文件的缓存副本,即使我编译,我也无法获得可执行文件的较新版本?在这种情况下,如何强制编译器使用新编辑的文件?
我正在使用以下内容编译我的代码:
# gcc -o myExecFileName source_file_1.c source_file2.c
回答你的问题,没有 gcc 不会缓存你的文件。 还有其他事情正在发生。 您要么按照 @Lee D 的建议更改不同目录中的文件,要么在编译之前没有保存文件,或者您所做的更改可能已被 ifdef 删除。
听起来你的 makefile 不正常。
make
使用文件时间来确定是否运行编译步骤。不过,您必须拥有依赖项才能使其正常工作。
观察:
hello: hello.c
$(CC) hello.c -o hello
在第一行,
hello: hello.c
表示查看文件hello.c
上的时间戳,如果它比hello
上的时间戳早(或者如果hello
不存在),则运行下面指定的编译.
检查以确保您编辑的文件与正在编译的文件相同。如果您在多个窗口中处理文件的多个版本,情况可能并非如此。上周发生在我身上。