私はMakefileを生成するためにautoconfを使用しています。私はそうしてプロジェクトをコンパイルしていますが、問題はオブジェクトファイルがsrc
フォルダ。私はそれらを.libs
フォルダにコンパイルします。Makefileは別のディレクトリの.oファイルを検索する必要があります
私は同様にそれを行うことが可能ですが、その後、別の問題が(src
です).cpp
ファイルとして、同じフォルダにこれらのファイル.o
のコンパイラ検索を生じます。
私は含めてすべてを試してみました:
%.o: $(SDIR)/%.cpp
$(CC) $(CFLAGS) -o $(OBJDIR)/[email protected] -c $<
と
$(OBJDIR)/%.o: %.c
$(CC) -c -o [email protected] $< $(CFLAGS)
と私も覚えていないので、他の多くの組み合わせを。 何らかの理由で、これらのルールは.libs
フォルダ内のオブジェクトファイルを探して終わるいない、と私が作る実行中にエラーが発生します:
g++: error: One.o: No such file or directory
g++: error: Two.o: No such file or directory
g++: error: Three.o: No such file or directory
g++: error: Four.o: No such file or directory
は、これはこれまでのところ、私のMakefile.amです:
CFLAGS=-Wall -I/chome/siddhs/soft/soft_source_code/target/src/include/ -I/home/siddhs/EclipseProjects/rdma2/include
AM_LDFLAGS=-L /usr/pbs/new/exec/lib/ -lsoft -lpthread -llmx-altair -L /usr/lib/x86_64-linux-gnu/ -lcrypto -L . -lsoft
OUT=rdma2.a
CC=g++
OBJDIR=/home/siddhs/EclipseProjects/rdma2/.libs
SDIR=/home/siddhs/EclipseProjects/rdma2/src
INC=-Iinc
ADIR=/usr/local/rdma2/
bin_PROGRAMS=rdma2test
rdma2test_SOURCES = One.cpp Two.cpp Three.cpp Four.cpp
rdma2test_LDADD=-L /usr/soft/new/exec/lib -lsoft -lpthread -L /usr/lib/x86_64-linux-gnu/ -lcrypto
_OBJS = One.o Two.o Three.o Four.o
%.o: $(SDIR)/%.cpp
$(CC) $(CFLAGS) -o $(OBJDIR)/[email protected] -c $<
$(OBJDIR)/%.o: %.c
$(CC) -c -o [email protected] $< $(CFLAGS)
'Makefile.am'を表示しますが、実際にこれらのオブジェクトファイルから何かを構築するルールを持つmakefileはどこですか? – Beta