一連のオブジェクト ファイルを共有オブジェクトにリンクしようとしています。VPATH を使用して、別のディレクトリにあるいくつかのオブジェクト ファイルの場所を指定します。.o ファイルがそのディレクトリに存在する場合、g++ が .o ファイルを見つけられないというエラー メッセージが表示されます。他のディレクトリのオブジェクト ファイルを削除すると、GNU Make / GCC は、VPATH で指定された他のディレクトリの .c から現在のディレクトリの .o をコンパイルします。では、オブジェクト ファイルが VPATH で指定された別のディレクトリに存在する場合でも、前提条件のオブジェクト ファイルが常に現在のディレクトリにビルドされるように、makefile を変更するにはどうすればよいでしょうか。
これが私の主なmakeルールです:
LD = g++ -g -shared
ALGOBJ = <a bunch of object files>
$(PROGRAM): $(ALGOBJ)
$(LD) -Wl,-soname -Wl,.so -Wl,--no-undefined $(LDPTHS) -o $(PROGRAM) $(ALGOBJ)