Russian Qt Forum
Ноябрь 24, 2024, 20:03
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
no rule to make target
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: no rule to make target (Прочитано 14065 раз)
alik
Гость
no rule to make target
«
:
Июнь 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"
Помогите плиз разобраться, что не так !
«
Последнее редактирование: Июнь 25, 2016, 18:41 от alik
»
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: no rule to make target
«
Ответ #1 :
Июнь 25, 2016, 18:53 »
Цитата: alik от Июнь 25, 2016, 18:39
Смысл заключается в том, что там описаны общие для обоих приложений типы данных, функции и классы и мне нужно использовать их в обоих приложениях.
Это кажется мне логичным, чтобы не делать 2 копии одних и тех жех второстепенных файлов.
Именно для этого придумали библиотеки. Хотите статические, но лучше динамические.
А что бы разобраться с вашей бедой покажите ваши pro файлы и дерево ваших проектов.
Записан
alik
Гость
Re: no rule to make target
«
Ответ #2 :
Июнь 25, 2016, 19:24 »
Цитата: Old от Июнь 25, 2016, 18:53
Цитата: alik от Июнь 25, 2016, 18:39
Смысл заключается в том, что там описаны общие для обоих приложений типы данных, функции и классы и мне нужно использовать их в обоих приложениях.
Это кажется мне логичным, чтобы не делать 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
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: no rule to make target
«
Ответ #3 :
Июнь 25, 2016, 20:23 »
Файлы этих двух проектов находятся в одной директории?
Почему во втором проекте путь к Global такой же как и у первого?
Записан
alik
Гость
Re: no rule to make target
«
Ответ #4 :
Июнь 25, 2016, 21:00 »
Цитата: Old от Июнь 25, 2016, 20:23
Файлы этих двух проектов находятся в одной директории?
Почему во втором проекте путь к Global такой же как и у первого?
Нет первый проект находится в
/home/Yandex.Disk/Projects/ASU-MRL/QT/asumrl
Второй проект в
/home/Yandex.Disk/Projects/ASU-MRL/QT/compilator
Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !?
«
Последнее редактирование: Июнь 25, 2016, 21:02 от alik
»
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: no rule to make target
«
Ответ #5 :
Июнь 25, 2016, 21:10 »
Цитата: alik от Июнь 25, 2016, 21:00
Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !?
Нет. Эта деректива говорит компилятору где искать исключительно файлы для #include.
Указывайте корректный путь к файлу.
«
Последнее редактирование: Июнь 25, 2016, 21:11 от Old
»
Записан
alik
Гость
Re: no rule to make target
«
Ответ #6 :
Июнь 25, 2016, 21:23 »
Цитата: Old от Июнь 25, 2016, 21:10
Цитата: alik от Июнь 25, 2016, 21:00
Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !?
Нет. Эта деректива говорит компилятору где искать исключительно файлы для #include.
Указывайте корректный путь к файлу.
Указал расположение файлов через ../asumrl и проект стал компилироваться
SOURCES += main.cpp\
mainwindow.cpp \
../asumrl/Global/Container.cpp \
../asumrl/Global/arrays.cpp
Спасибо!
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: no rule to make target
«
Ответ #7 :
Июнь 25, 2016, 21:47 »
хранить проекты на ЯД/дропбоксе/пр. — плохая идея. системы контроля версий не просто так придумали.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
alik
Гость
Re: no rule to make target
«
Ответ #8 :
Июнь 26, 2016, 22:30 »
Цитата: kambala от Июнь 25, 2016, 21:47
хранить проекты на ЯД/дропбоксе/пр. — плохая идея. системы контроля версий не просто так придумали.
А какую можете порекемендовать оболочку?
Соприкосался с системой GitHub, вообщем то неплохо, но может есть попроще что то.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: no rule to make target
«
Ответ #9 :
Июнь 26, 2016, 23:42 »
проще, чем git, разве что mercurial (svn рекомендовать не буду). но и то — для базового использования гит крайне простой, тем более что есть и гуи-клиенты, и даже поддержка в креатор встроена.
GitHub — это сервер, а не сама СКВ.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
Re: no rule to make target
«
Ответ #10 :
Июнь 27, 2016, 00:03 »
В принципе для "чайника", все простые. commit и update, больше ничего не надо.
С красивым гуи - Tortoise SVN.
С глобальным халявным и публичным освещением твоих исходников - Git.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: no rule to make target
«
Ответ #11 :
Июнь 27, 2016, 00:13 »
Цитата: Bepec от Июнь 27, 2016, 00:03
С красивым гуи - Tortoise SVN.
ничего другого не видел, да?
Цитата: Bepec от Июнь 27, 2016, 00:03
С глобальным халявным и публичным освещением твоих исходников - Git.
про битбакет не слышал, да?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
Re: no rule to make target
«
Ответ #12 :
Июнь 27, 2016, 03:11 »
Видел. клиент для гита. Видел. клиент для меркурия. Но самый красивый и удобный Tortoise. Это моё мнение
Слышал что то про битбакет. Но не интересовался и не пользовался
Незачем.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: no rule to make target
«
Ответ #13 :
Июнь 27, 2016, 09:12 »
А что с svn не так? Фирма пользуется ей уже лет 8, все работает, интуитивно понятный клиент (tortoise), есть бранчи и пр.
Github клиент какой-то, пожалуй, слишком перемудренный. Не все в нем очевидно.
Tortoise git получше будет.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: no rule to make target
«
Ответ #14 :
Июнь 27, 2016, 09:22 »
Цитата: Racheengel от Июнь 27, 2016, 09:12
А что с svn не так? Фирма пользуется ей уже лет 8, все работает, интуитивно понятный клиент (tortoise), есть бранчи и пр.
Github клиент какой-то, пожалуй, слишком перемудренный. Не все в нем очевидно.
Tortoise git получше будет.
Аналогично
У нас тоже все на svn находится.
Мне не понравился git в Qt Creator'е -- неудобный, особенно после гита в PyCharm'е, поэтому перешел на консольный в коробке гита -- git bash
Первые 3 дня запоминал команды
Раньше, консольный гит использовал только для получения репозитория -- git clone
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...