执行make在错误的文件夹中创建目标文件

时间:2019-04-04 06:40:58

标签: makefile ubuntu-16.04

我是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的地方。

怎么了?

0 个答案:

没有答案