如何避免在Windows和Linux中具有不同名称的目标重建
How to avoid rebuilding in targets with different names in Windows and Linux?
我在makefile
中有这个myfile: $(OBJECTS)
g++ -o $@ $^
这应该转换为
之类的东西g++ -o myfile XXX.o YYY.o ZZZ.o
但这在Windows和Linux中产生不同的输出
Windows: myfile.exe
linux: myfile.out
因此,当我再次运行make
时,它将重建(即使没有更改(,因为目标名称是myfile
而不是myfile.exe
或myfile.out
。当然,我尝试使用myfile.exe
作为Windows上的目标名称,并且它显示了我想要的最新或我想要的消息。
我如何解决此问题,以便找到myfile.exe|out
并决定不重建?
windows上的gcc将在链接时自动将.exe附加到输出文件名上,尝试
之类的东西ifneq ($(findstring mingw,$(MAKE_HOST)),)
exe := .exe
endif
myfile$(exe): $(OBJECTS)
g++ -o $@ $^
或当评论所说的所有平台时都使用.exe。
相关文章:
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++A*算法并不总是在路径中具有目标节点
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 为测试目标创建具有不同源文件夹的文件
- 使用源向量作为目标
- 是否可以用C++/WinRT将windows 10.0.14393作为目标
- 在 CMake 中为每个目标设置编译器/链接器标志
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 CMake 中对目标依赖项进行分组?
- Android 在编译二进制文件时重建静态库
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 如何为包含头文件的目标编写生成文件?
- 线性优化目标函数中的绝对值
- 制作文件:没有规则来制定目标:如何设置正确的规则?
- 字符串函数在目标C++上运行时C++返回空
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- 请求最简单的 OpenMP 目标 GPU 示例
- LLVM 编译:目标的配方 '../lib/IR/Release+Asserts/Intrinsics.gen.tmp' failed
- 如何避免在Windows和Linux中具有不同名称的目标重建
- VS2010 MSBuild目标仅在重建时运行