Russian Qt Forum
Ноябрь 24, 2024, 19:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: no rule to make target  (Прочитано 14049 раз)
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"

Помогите плиз разобраться, что не так !

« Последнее редактирование: Июнь 25, 2016, 18:41 от alik » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июнь 25, 2016, 18:53 »

Смысл заключается в том, что там описаны общие для обоих приложений типы данных, функции и классы и мне нужно использовать их в обоих приложениях.
Это кажется мне логичным, чтобы не делать 2 копии одних и тех жех второстепенных файлов.
Именно для этого придумали библиотеки. Хотите статические, но лучше динамические.

А что бы разобраться с вашей бедой покажите ваши pro файлы и дерево ваших проектов.
Записан
alik
Гость
« Ответ #2 : Июнь 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
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Июнь 25, 2016, 20:23 »

Файлы этих двух проектов находятся в одной директории?

Почему во втором проекте путь к Global такой же как и у первого?
Записан
alik
Гость
« Ответ #4 : Июнь 25, 2016, 21:00 »

Файлы этих двух проектов находятся в одной директории?

Почему во втором проекте путь к 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 Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Июнь 25, 2016, 21:10 »

Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !?
Нет. Эта деректива говорит компилятору где искать исключительно файлы для #include.
Указывайте корректный путь к файлу.
« Последнее редактирование: Июнь 25, 2016, 21:11 от Old » Записан
alik
Гость
« Ответ #6 : Июнь 25, 2016, 21:23 »

Я думуал, что включив директорию в pro файле второго проекта ( INCLUDEPATH += "../asumrl" ), все должно быть корректно с путями !?
Нет. Эта деректива говорит компилятору где искать исключительно файлы для #include.
Указывайте корректный путь к файлу.

Указал расположение файлов через  ../asumrl и проект стал компилироваться

SOURCES += main.cpp\
        mainwindow.cpp \
        ../asumrl/Global/Container.cpp \
        ../asumrl/Global/arrays.cpp

Спасибо!
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #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
Гость
« Ответ #8 : Июнь 26, 2016, 22:30 »

хранить проекты на ЯД/дропбоксе/пр. — плохая идея. системы контроля версий не просто так придумали.

А какую можете порекемендовать оболочку?
Соприкосался с системой GitHub, вообщем то неплохо, но может есть попроще что то.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #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
Гость
« Ответ #10 : Июнь 27, 2016, 00:03 »

В принципе для "чайника", все простые. commit и update, больше ничего не надо.

С красивым гуи - Tortoise SVN.
С глобальным халявным и публичным освещением твоих исходников - Git.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #11 : Июнь 27, 2016, 00:13 »

С красивым гуи - Tortoise SVN.
ничего другого не видел, да?
С глобальным халявным и публичным освещением твоих исходников - 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
Гость
« Ответ #12 : Июнь 27, 2016, 03:11 »

Видел. клиент для гита. Видел. клиент для меркурия. Но самый красивый и удобный Tortoise. Это моё мнение Улыбающийся
Слышал что то про битбакет. Но не интересовался и не пользовался Улыбающийся Незачем.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #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 Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #14 : Июнь 27, 2016, 09:22 »

А что с svn не так? Фирма пользуется ей уже лет 8, все работает, интуитивно понятный клиент (tortoise), есть бранчи и пр.
Github клиент какой-то, пожалуй, слишком перемудренный. Не все в нем очевидно.
Tortoise git получше будет.

Аналогично Улыбающийся У нас тоже все на svn находится.
Мне не понравился git в Qt Creator'е -- неудобный, особенно после гита в PyCharm'е, поэтому перешел на консольный в коробке гита -- git bash Улыбающийся
Первые 3 дня запоминал команды Улыбающийся
Раньше, консольный гит использовал только для получения репозитория -- git clone Улыбающийся
Записан

Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.