为了账号安全,请及时绑定邮箱和手机立即绑定

操作系统检测makefile

操作系统检测makefile

操作系统检测makefile我经常在几台不同的计算机和几种不同的操作系统上工作,这些操作系统是Mac OS X,Linux或Solaris。对于我正在进行的项目,我从远程git存储库中提取代码。无论我在哪个终端,我都希望能够处理我的项目。到目前为止,我已经找到了通过每次切换计算机时更改makefile来绕过操作系统更改的方法。然而,这是乏味的,并引起一堆头痛。如何修改我的makefile,以便它检测我正在使用哪个操作系统并相应地修改语法?这是makefile:cc = gcc -gCC = g++ -gyacc=$(YACC)lex=$(FLEX)all: assemblerassembler: y.tab.o lex.yy.o         $(CC) -o assembler y.tab.o lex.yy.o -ll -l yassembler.o: assembler.c         $(cc) -o assembler.o assembler.cy.tab.o: assem.y         $(yacc) -d assem.y         $(CC) -c y.tab.clex.yy.o: assem.l         $(lex) assem.l         $(cc) -c lex.yy.cclean:         rm -f lex.yy.c y.tab.c y.tab.h assembler *.o *.tmp *.debug *.acts
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

我现在认为这个答案已经过时了。我发布了一个新的完美解决方案。

如果您的makefile可能在非Cygwin Windows上运行,则uname可能无法使用。这很尴尬,但这是一个潜在的解决方案。您必须首先检查Cygwin以排除它,因为它的PATH环境变量中也有WINDOWS 。

ifneq (,$(findstring /cygdrive/,$(PATH)))
    UNAME := Cygwinelseifneq (,$(findstring WINDOWS,$(PATH)))
    UNAME := Windowselse
    UNAME := $(shell uname -s)endifendif


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 1464 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信