c - 构建可执行文件时,使用 MinGW 的静态库无法正确更新
问题描述
我做了一个小makefile来构建一个由几个目标文件组成的静态库。然后我制作了一个测试程序 test.exe 并使用相同的 makefile 构建了它。可执行文件由 test.c 和要测试的静态库组成。
当我更改其中一个 .c 源文件中的一个函数时,makefile 会识别更改并重建 .o 文件,然后是 .a 存档文件,最后是测试可执行文件。所有文件都被修改,因为操作系统时间属性在我运行 makefile 时发生了变化。
但是现在当我运行 test.exe 时,我从输出中看到我修改的函数仍然是旧版本。我可以通过更改 printf 格式字符串并注意到屏幕输出仍然与旧格式相同来看到它。如果我从磁盘硬删除 lib.a(即把它移到回收站),然后我再次运行 makefile,现在 test.exe 具有更改功能的正确版本。
为什么?是否在某处创建缓存并使用它?我该如何解决这个烦人的事情?
环境是:
- Windows 7的
- Mingw64 (i686-8.1.0-win32-dwarf-rt_v6-rev0)
解决方案
推荐阅读
- java - 更改以编程方式生成的 TextInputLayout 的下划线颜色
- java - Scala Gatling http 调用在场景之外返回字符串或访问会话
- python - 将 Pandas 数据帧“旋转”到 3D numpy 数组中
- html - 在 ReactJS 中的 Plaid-Link 上显示横幅
- c++ - MSVC 中可能的编译器错误
- visual-studio-app-center-distribute - 我如何知道哪个人向 AppCenter 组织发布了移动应用程序
- html - 谷歌字体显示为粗体,没有粗体属性
- c# - Running cpu use average over past 1 hour sampled every minute using performance counters
- php - Modifying the woocommerce search to search for product title's only
- javascript - 在 JSX 表达式中动态添加换行符