我是ubuntu的新手,因此要制作文件。我已经成功创建了具有文件夹结构的make文件。但是,如果添加类似的结构,则会出现错误。
我成功执行了make命令,并在子文件夹cpp11_and_cpp14_menu中的一个主cpp文件和两个文件(list_menu.cpp和list_menu.h)运行了应用程序
文件夹结构与下面的样子完全相同,其中cpp11_and_cpp14.cpp具有主要功能。
../advancedcppproject/
cpp11_and_cpp14.cpp
Makefile
../advancedcppproject/cpp11_and_cpp14_menu
list_menu.cpp
list_menu.h
../advancedcppproject/multi_threading_example
multi_threading.cpp
multi_threading.h
使文件内容为
cpp11_and_cpp14 : cpp11_and_cpp14.o ./multi_threading_example/multi_threading.o ./cpp11_and_cpp14_menu/list_menu.o
g++ cpp11_and_cpp14.o ./multi_threading_example/multi_threading.o ./cpp11_and_cpp14_menu/list_menu.o -o cpp11_and_cpp14
cpp11_and_cpp14.o : cpp11_and_cpp14.cpp ./cpp11_and_cpp14_menu/list_menu.h ./multi_threading_example/multi_threading.h
g++ -c cpp11_and_cpp14.cpp
./cpp11_and_cpp14_menu/list_menu.0 : ./cpp11_and_cpp14_menu/list_menu.cpp ./cpp11_and_cpp14_menu/list_menu.h
g++ -c ./cpp11_and_cpp14_menu/list_menu.cpp
./multi_threading_example/multi_threading.o : ./multi_threading_example/multi_threading.cpp ./multi_threading_example/multi_threading.h
g++ -c ./multi_threading_example/multi_threading.cpp
执行make命令后,它失败并显示一条错误消息
g++ -c ./multi_threading_example/multi_threading.cpp
g++ cpp11_and_cpp14.o ./multi_threading_example/multi_threading.o ./cpp11_and_cpp14_menu/list_menu.o -o cpp11_and_cpp14
g++: error: ./multi_threading_example/multi_threading.o: No such file or directory
Makefile:6: recipe for target 'cpp11_and_cpp14' failed
make: *** [cpp11_and_cpp14] Error 1
我希望在文件夹../advancedcppproject/multi_threading_example下创建multi_threading.o。但是multi.threading.o是在../advancedcppproject下创建的。
在../advancedcppproject/cpp11_and_cpp14_menu下正确创建list_menu.o的地方。
怎么了?