C 生成文件:流不进入if循环
我正在尝试将大量文件(.pc pro*c代码、c代码和.h文件编译成一个exe)编译成一个exe 示例代码 请注意,制表符的位置是相应的。然而,在这里删除,而张贴 抱歉,已尝试修复缩进。。不过,我们现在会做得更好 请注意,行首的T表示制表符。C 生成文件:流不进入if循环,c,linux,makefile,proc,C,Linux,Makefile,Proc,我正在尝试将大量文件(.pc pro*c代码、c代码和.h文件编译成一个exe)编译成一个exe 示例代码 请注意,制表符的位置是相应的。然而,在这里删除,而张贴 抱歉,已尝试修复缩进。。不过,我们现在会做得更好 请注意,行首的T表示制表符。 build :$(OBJS) T @if [ "$(EXE)" = "abc" ]; then \ T echodo `command`\ T elif [ "$(ORA_CLIENT_LIB)" = "shared" ]; then \ T e
build :$(OBJS)
T @if [ "$(EXE)" = "abc" ]; then \
T echodo `command`\
T elif [ "$(ORA_CLIENT_LIB)" = "shared" ]; then \
T echodo $(CC) $(LDFLAGSSHRD) $(LIBPATHS) -m64 -o $(EXE) $(OBJS) `cat $(ORACLE_HOME)/rdbms/lib/sysliblist ` $(LIBHOME)/libclntsh.so; \
T else \
T echodo $(CC) $(LIBPATH) -m64 -o $(EXE) $(OBJS) -L$(LIBPATH) $(PROLDLIB) $(AMOLIB) $(LIBHOME)/libclntsh. a ;\
T fi
变量ORA CLient Lib设置为shared。尽管如此,代码并没有进入elif块。我遗漏了什么吗
当我运行make时,我得到了错误
------/bin/sh: -c: line 4: syntax error: unexpected end of file
------make: *** [build] Error 2
已创建所有.o文件,但未创建exe。我不明白少了什么。
echodo是Oracle bin的一个文件。因为我正在编译ProC代码,所以它一定有一定的相关性 我来猜一猜 我猜
echodo
会回显它的所有参数,并将第一个参数作为命令执行,其余参数作为它执行的命令的参数
然而
echodo --------
它回显-----------
,然后尝试执行它。由于您不太可能有一个名为-----------
的命令,因此您将得到一个错误
如果要回显字符串
-----------
,请使用普通的echo
命令。我希望在所有行上看到\
s,但最后一行除外,如下所示:
build: $(OBJS)
@if [ "$(EXE)" = "abc" ]; then \
echo --------; \
elif [ "$(ORA_CLIENT_LIB)" = "shared" ]; then \
echodo $(CC) $(LDFLAGSSHRD) $(LIBPATHS) -m64 -o $(EXE) $(OBJS) `cat $(ORACLE_HOME)/rdbms/lib/sysliblist ` $(LIBHOME)/libclntsh.so; \
else \
echodo $(CC) $(LIBPATH) -m64 -o $(EXE) $(OBJS) -L$(LIBPATH) $(PROLDLIB) $(AMOLIB) $(LIBHOME)/libclntsh.a; \
fi
这是Makefile的一部分吗?你真的需要修正缩进/格式,它是不可读的。修正了缩进,先生。出于安全原因,我不得不从这里删除一些代码。“\”用在行尾。即使我没有得到Echodo是什么,但是它正在现有文件中使用。我看到它是oracle bin文件夹中的一个文件。所以它一定是一个与Pro*C相关的文件