Исключением является создание объектного файла в неправильной папке - PullRequest
0 голосов
/ 04 апреля 2019

Я новичок в Ubuntu и, следовательно, чтобы сделать файл.Я успешно создал файл make со структурой папок.Однако, если я добавлю подобную структуру, я получу сообщение об ошибке.

Я успешно выполнил команду make и запустил приложение с одним основным файлом cpp и двумя файлами (list_menu.cpp и list_menu.h) в подпапке cpp11_and_cpp14_menu

структура папок выглядит точно так, как показано ниже, где 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

Содержимое файла Make

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

Я ожидаю, что multi_threading.o будет создан в папке ../advancedcppproject/multi_threading_example.Однако multi_threading.o создается в ../advancedcppproject.

Где, как list_menu.o правильно создается в ../advancedcppproject/cpp11_and_cpp14_menu.

Что не так?

...