我有一个c ++项目。在我的Project文件夹中,我有三个子项目文件夹。
Proj_Folder
Sub_Proj1
proj1.cpp
makefile
Sub_Proj2
proj2.cpp
makefile
Sub_Proj3
proj3.cpp
makefile
ShareAll.cpp
我的所有子项目都使用ShareAll.o文件。 在Sub_Proj1中,我有一个makefile。该makefile需要查找位于其父目录中的ShareAll.o。 我尝试了以下代码。
OBJS = ShareAll.o proj1.o
proj1: ShareAll.o proj1.o
${CXX} ${CFLAGS} -o proj1 ${OBJS}
proj1.o : proj1.cpp
${CXX} ${CFLAGS} proj1.cpp
ShareAll.o : ../ShareAll.cpp
${CXX} ${CFLAGS} ../ShareAll.cpp
此makefile在Sub_Proj1的文件夹中创建 ShareAll.o 。
但我不想要这个。我只需要从父目录中引用。它不应在sub_proj文件夹中创建新的'
答案 0 :(得分:3)
所以......只使用../ShareAll.o
代替ShareAll.o
?
OBJS = ../ShareAll.o proj1.o
proj1: ${OBJS}
${CXX} ${CFLAGS} -o $@ $+
proj1.o : proj1.cpp
${CXX} ${CFLAGS} -c $< -o $@
../ShareAll.o : ../ShareAll.cpp
${CXX} ${CFLAGS} -c $< -o $@