膨大な数のファイル (.pc pro*c コード、c コード、および .h ファイルを exe にコンパイル) を 1 つの exe にコンパイルしようとしています。
サンプルコード。
タブ文字はそれに応じて配置されることに注意してください。ただし、投稿中にここで削除されました。
申し訳ありませんが、インデントを修正しようとしました..しかし、今はもっとうまくいくでしょう。
行頭の T はタブ文字を表すことに注意してください。
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 は共有に設定されています。それでも、コードは elif ブロックに入りません。私は何か不足していますか?
makeを実行すると、エラーが発生します...
------/bin/sh: -c: line 4: syntax error: unexpected end of file
------make: *** [build] Error 2
すべての .o ファイルが作成されましたが、exe は作成されません。何が欠けているのかわかりません。echodo は Oracle bin のファイルです。私は ProC コードをコンパイルしているので、関連性が必要です。