Название: no rule to make target Отправлено: alik от Июнь 25, 2016, 18:39 Добрый день,
У меня есть основное приложение с набором хедеров и cpp файлов. Создал второе приложение, которое должно использовать уже готовые файлы .h и .cpp, расположенные в папке первой программы. Смысл заключается в том, что там описаны общие для обоих приложений типы данных, функции и классы и мне нужно использовать их в обоих приложениях. Это кажется мне логичным, чтобы не делать 2 копии одних и тех жех второстепенных файлов. Но при попытке компиляции второго приложения компилятор выдал мне ошибку: 8:31:49: Running steps for project compilator... 18:31:49: Configuration unchanged, skipping qmake step. 18:31:49: Starting: "/usr/bin/make" make: *** No rule to make target 'Global/Container.cpp', needed by 'Container.o'. Stop. 18:31:49: The process "/usr/bin/make" exited with code 2. Error while building/deploying project compilator (kit: Desktop Qt 5.2.0 GCC 64bit) When executing step 'Make' 18:31:49: Elapsed time: 00:00. Здесь Global/Container.cpp и Global/Container.h это как раз один из таких файлов, который я использую в обоих приложениях. В pro файле я подключил директорию, где находится папка Global: INCLUDEPATH += "../myfirstprogram" Помогите плиз разобраться, что не так ! Название: Re: no rule to make target Отправлено: Old от Июнь 25, 2016, 18:53 Смысл заключается в том, что там описаны общие для обоих приложений типы данных, функции и классы и мне нужно использовать их в обоих приложениях. Именно для этого придумали библиотеки. Хотите статические, но лучше динамические.Это кажется мне логичным, чтобы не делать 2 копии одних и тех жех второстепенных файлов. А что бы разобраться с вашей бедой покажите ваши pro файлы и дерево ваших проектов. Название: Re: no rule to make target Отправлено: alik от Июнь 25, 2016, 19:24 Смысл заключается в том, что там описаны общие для обоих приложений типы данных, функции и классы и мне нужно использовать их в обоих приложениях. Именно для этого придумали библиотеки. Хотите статические, но лучше динамические.Это кажется мне логичным, чтобы не делать 2 копии одних и тех жех второстепенных файлов. А что бы разобраться с вашей бедой покажите ваши pro файлы. Проект № 1: TARGET = asumrl TEMPLATE = app win32: LIBS += -L$$PWD/Packing/bzip2 -lbz2 unix: LIBS += -lbz2 SOURCES += main.cpp\ mainwindow.cpp \ about.cpp \ map.cpp \ settings.cpp \ terrainshader.cpp \ verticalsection.cpp \ listobserv.cpp \ Global/arrays.cpp \ GIS/gis.cpp \ GIS/dem_srtm.cpp \ Algorithms/algs_files.cpp \ Algorithms/algs_common.cpp \ Algorithms/algs_geo.cpp \ Algorithms/algs_math.cpp \ Algorithms/algs_cloudparams.cpp \ GIS/esrishapes.cpp \ Import/satellite.cpp \ Global/calctables.cpp \ Global/radarsinfo.cpp \ Global/repers.cpp \ Global/volumescan.cpp \ Algorithms/algs_contours.cpp \ Global/container.cpp \ Global/config.cpp \ Export/email.cpp \ Interfaces/comport.cpp \ Algorithms/meteostation.cpp \ Log/log_work.cpp \ Packing/compress.cpp \ Global/data_transport.cpp \ Export/reports.cpp HEADERS += mainwindow.h \ about.h \ map.h \ settings.h \ terrainshader.h \ verticalsection.h \ listobserv.h \ Global/arrays.h \ Global/types.h \ Global/constants.h \ Global/strings.h \ GIS/gis.h \ GIS/dem_srtm.h \ Algorithms/algs_files.h \ Algorithms/algs_common.h \ Algorithms/algs_geo.h \ Algorithms/algs_math.h \ Algorithms/algs_cloudparams.h \ GIS/esrishapes.h \ Import/satellite.h \ Global/calctables.h \ Global/radarsinfo.h \ Global/repers.h \ Global/volumescan.h \ Algorithms/algs_contours.h \ Global/container.h \ Global/config.h \ Export/email.h \ Interfaces/comport.h \ Algorithms/meteostation.h \ Log/log_work.h \ Global/data_transport.h \ Global/types_slave.h \ Packing/compress.h \ Packing/bzlib.h \ Export/reports.h FORMS += mainwindow.ui \ about.ui \ map.ui \ settings.ui \ terrainshader.ui \ verticalsection.ui \ listobserv.ui RESOURCES += \ asumrl.qrc Проект № 2: #------------------------------------------------- # # Project created by QtCreator 2015-09-15T14:11:49 # #------------------------------------------------- QT += core gui QT += printsupport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = compilator TEMPLATE = app INCLUDEPATH += "../asumrl" SOURCES += main.cpp\ mainwindow.cpp \ Global/Container.cpp HEADERS += mainwindow.h \ Global/Container.h FORMS += mainwindow.ui RESOURCES += \ compilator.qrc Название: Re: no rule to make target Отправлено: Old от Июнь 25, 2016, 20:23 Файлы этих двух проектов находятся в одной директории?
Почему во втором проекте путь к Global такой же как и у первого? Название: Re: no rule to make target Отправлено: alik от Июнь 25, 2016, 21:00 Файлы этих двух проектов находятся в одной директории? Нет первый проект находится в Почему во втором проекте путь к Global такой же как и у первого? /home/Yandex.Disk/Projects/ASU-MRL/QT/asumrl Второй проект в /home/Yandex.Disk/Projects/ASU-MRL/QT/compilator Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !? Название: Re: no rule to make target Отправлено: Old от Июнь 25, 2016, 21:10 Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !? Нет. Эта деректива говорит компилятору где искать исключительно файлы для #include.Указывайте корректный путь к файлу. Название: Re: no rule to make target Отправлено: alik от Июнь 25, 2016, 21:23 Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !? Нет. Эта деректива говорит компилятору где искать исключительно файлы для #include.Указывайте корректный путь к файлу. Указал расположение файлов через ../asumrl и проект стал компилироваться SOURCES += main.cpp\ mainwindow.cpp \ ../asumrl/Global/Container.cpp \ ../asumrl/Global/arrays.cpp Спасибо! Название: Re: no rule to make target Отправлено: kambala от Июнь 25, 2016, 21:47 хранить проекты на ЯД/дропбоксе/пр. — плохая идея. системы контроля версий не просто так придумали.
Название: Re: no rule to make target Отправлено: alik от Июнь 26, 2016, 22:30 хранить проекты на ЯД/дропбоксе/пр. — плохая идея. системы контроля версий не просто так придумали. А какую можете порекемендовать оболочку? Соприкосался с системой GitHub, вообщем то неплохо, но может есть попроще что то. Название: Re: no rule to make target Отправлено: kambala от Июнь 26, 2016, 23:42 проще, чем git, разве что mercurial (svn рекомендовать не буду). но и то — для базового использования гит крайне простой, тем более что есть и гуи-клиенты, и даже поддержка в креатор встроена.
GitHub — это сервер, а не сама СКВ. Название: Re: no rule to make target Отправлено: Bepec от Июнь 27, 2016, 00:03 В принципе для "чайника", все простые. commit и update, больше ничего не надо.
С красивым гуи - Tortoise SVN. С глобальным халявным и публичным освещением твоих исходников - Git. Название: Re: no rule to make target Отправлено: kambala от Июнь 27, 2016, 00:13 С красивым гуи - Tortoise SVN. ничего другого не видел, да?С глобальным халявным и публичным освещением твоих исходников - Git. про битбакет не слышал, да?Название: Re: no rule to make target Отправлено: Bepec от Июнь 27, 2016, 03:11 Видел. клиент для гита. Видел. клиент для меркурия. Но самый красивый и удобный Tortoise. Это моё мнение :)
Слышал что то про битбакет. Но не интересовался и не пользовался :) Незачем. Название: Re: no rule to make target Отправлено: Racheengel от Июнь 27, 2016, 09:12 А что с svn не так? Фирма пользуется ей уже лет 8, все работает, интуитивно понятный клиент (tortoise), есть бранчи и пр.
Github клиент какой-то, пожалуй, слишком перемудренный. Не все в нем очевидно. Tortoise git получше будет. Название: Re: no rule to make target Отправлено: gil9red от Июнь 27, 2016, 09:22 А что с svn не так? Фирма пользуется ей уже лет 8, все работает, интуитивно понятный клиент (tortoise), есть бранчи и пр. Github клиент какой-то, пожалуй, слишком перемудренный. Не все в нем очевидно. Tortoise git получше будет. Аналогично :) У нас тоже все на svn находится. Мне не понравился git в Qt Creator'е -- неудобный, особенно после гита в PyCharm'е, поэтому перешел на консольный в коробке гита -- git bash :) Первые 3 дня запоминал команды :) Раньше, консольный гит использовал только для получения репозитория -- git clone :) Название: Re: no rule to make target Отправлено: kambala от Июнь 27, 2016, 12:55 Видел. клиент для гита. Видел. клиент для меркурия. Но самый красивый и удобный Tortoise. Это моё мнение :) видел один клиент, сделал вывод про все сразу — прям мастер дедукцииСлышал что то про битбакет. Но не интересовался и не пользовался :) Незачем. ну вот поинтересуйся, чтоб в будущем бред всякий не писать с видом знатокаА что с svn не так? Фирма пользуется ей уже лет 8, все работает, интуитивно понятный клиент (tortoise), есть бранчи и пр. мне в свн не нравится, что создается целая копия активной ветки при tag/branch, а также нельзя просто взять и удалить папку из файловой системы. и историю нельзя без инета просматривать.Github клиент какой-то, пожалуй, слишком перемудренный. Не все в нем очевидно. а я ни тем, ни тем никогда и не пользовался :) SourceTree использую, очень хороший на мой взгляд. ну и из командной строки периодически.Tortoise git получше будет. Название: Re: no rule to make target Отправлено: Racheengel от Июнь 27, 2016, 13:39 мне в свн не нравится, что создается целая копия активной ветки при tag/branch, а также нельзя просто взять и удалить папку из файловой системы. и историю нельзя без инета просматривать. Папку точно можно удалить. Просто потом надо commit обязательно сделать. А история без инета работает только для локального свн-сервера, но это ж и логично вроде, не? :) Название: Re: no rule to make target Отправлено: Bepec от Июнь 27, 2016, 13:55 kambala не кипятись) Человек спрашивает мнение людей, и это моё мнение :D
Название: Re: no rule to make target Отправлено: kambala от Июнь 27, 2016, 14:14 мне в свн не нравится, что создается целая копия активной ветки при tag/branch, а также нельзя просто взять и удалить папку из файловой системы. и историю нельзя без инета просматривать. Папку точно можно удалить. Просто потом надо commit обязательно сделать. А история без инета работает только для локального свн-сервера, но это ж и логично вроде, не? :) ну гит хранит всю историю локально, где бы ни находился сервер :) kambala не кипятись) Человек спрашивает мнение людей, и это моё мнение :D свое мнение надо уточнять словами «мне кажется», «я считаю» и т.п.Название: Re: no rule to make target Отправлено: Bepec от Июнь 27, 2016, 18:38 Не свистите. Всё что я пишу является лишь моим мнением, основанным на моих впечатлениях и знаниях. Или вы скажете, что всё написанно вами без слов «мне кажется», «я считаю», является истиной в последней инстанции? :D
Название: Re: no rule to make target Отправлено: kambala от Июнь 27, 2016, 20:43 я не делаю уверенных утверждений типа таких
С глобальным халявным и публичным освещением твоих исходников - Git. Название: Re: no rule to make target Отправлено: alik от Июнь 27, 2016, 22:29 Действительно с Яндекс.Диском могут возникать опасные ситуации. Особенно когда размер виртуального диска достаточно большой, а скорость интернета на какой-либо машине маленькая. При этом могут происходить самые непредсказуемые вещи, от удаления файлов, до их размножения с цифровыми суффиксами.
Любая оболочка типа git (или аналог) будет безопасней. Название: Re: no rule to make target Отправлено: Bepec от Июнь 27, 2016, 22:57 "С глобальным халявным и публичным освещением твоих исходников - Git. "
Разберём что я сказал не так. Итак у Git имеется самый большой ГЛОБАЛЬНЫЙ и разрекламированный ХАЛЯВНЫЙ сервис для ПУБЛИЧНОГО освещения своих исходников. Я неправ? :) Я его не ругаю, нет - это его преимущество, ибо для svn чего то подобного я не знаю. PS просто слово "сервис" не легло на Название: Re: no rule to make target Отправлено: Racheengel от Июнь 28, 2016, 01:40 Цитировать ибо для svn чего то подобного я не знаю. sourceforge :) Название: Re: no rule to make target Отправлено: Old от Июнь 28, 2016, 06:16 "С глобальным халявным и публичным освещением твоих исходников - Git. " Вы путаете git и github. Это разные вещи, совсем разные.Разберём что я сказал не так. Итак у Git имеется самый большой ГЛОБАЛЬНЫЙ и разрекламированный ХАЛЯВНЫЙ сервис для ПУБЛИЧНОГО освещения своих исходников. Я неправ? :) Я его не ругаю, нет - это его преимущество, ибо для svn чего то подобного я не знаю. PS просто слово "сервис" не легло на Название: Re: no rule to make target Отправлено: Bepec от Июнь 28, 2016, 12:00 Old вы видимо до PS не дочитали :)
Ммм... sourceForge на svn. Никогда не замечал :) Название: Re: no rule to make target Отправлено: Old от Июнь 28, 2016, 12:16 Old вы видимо до PS не дочитали :) Дочитал.Название: Re: no rule to make target Отправлено: kambala от Июнь 28, 2016, 14:42 "С глобальным халявным и публичным освещением твоих исходников - Git. " Вы путаете git и github. Это разные вещи, совсем разные.Разберём что я сказал не так. Итак у Git имеется самый большой ГЛОБАЛЬНЫЙ и разрекламированный ХАЛЯВНЫЙ сервис для ПУБЛИЧНОГО освещения своих исходников. Я неправ? :) Я его не ругаю, нет - это его преимущество, ибо для svn чего то подобного я не знаю. PS просто слово "сервис" не легло на в общем, верес в очередной раз сел в лужу, и теперь пытается оправдаться. дальше опять пойдут отшучивания. |