LINUX.ORG.RU

Разработка одного проекта с двух машин

 , ,


0

1

Есть два пользователя, А и Б. Рабочие места - разные машины. Разрабатывают один и тот же проект через коммиты в svn. Проект на Qt. Есть загвоздка. В проекте такие pri файлы, настроенный на машину А:

...
LIBS += -LD:/Projects/Qt/qextserialport/build -lqextserialportd1

INCLUDEPATH += D:/Projects/Qt/qextserialport/src
...
CONFIG(debug,debug|release) {
 LIBS += -LC:/QtCreator/Qwt/lib -lqwtd
} else {
 LIBS += -LC:/QtCreator/Qwt/lib -lqwt
}
INCLUDEPATH += C:/QtCreator/Qwt/include

Пути на машине Б другие. Из-за этого на машине Б просто скачать и запустить/скомпилировать не получится.

Как решить проблему?


ну это... в игнор этот файл занести.

bvn13 ★★★★★
()

0) перейти на cmake
1) пути до библиотек — в переменные окружения
2) для чего-то сложнее переменной окружения — написать скрипт для find_package
3) для специфичных настроек, не имеющих отношения к поиску пакетов - сложить их в ~/.config/yourappname/developer/config/properties.ini
...
PROFIT

stevejobs ★★★★☆
()

Либо делать pri-файлы «платформенно-независимыми», либо выкинуть их из репозитория.

Deleted
()

Как решить проблему?

начать с того что не писать тег «svn» там, где он не нужен

ZuBB ★★★★★
()

Пути на машине Б другие.

Поместите либы в репу.

nanoolinux ★★★★
()

Перейти на линукс, поставить это барахло куда-нибудь в опт, добавить в енвайронмент, не использовать либы из состава иде, а из фреймворка. :)

zJes ★★
()

Системо-зависимые пути - да за это стрелять нужно.

А вообще svn поддерживает external modules (или что то в этом духе).

andreyu ★★★★★
()

В git есть файл gitignore. Неужели в svn нет?

S-Mage ★★
()

Передавать путь к файлу как переменную в командной строке qmake. Придется один раз настроить QtCreator на каждой машине и немного переписать pri-файл, а после этого наслаждаться.

P.S. proof of concept:

*.pri:

LIBS += -L$${PATH_TO_SERIAL_PORT} -lqextserialportd1

в настройках проекта для вызова qmake дописать
PATH_TO_SERIAL_PORT="D:/Projects/Qt/qextserialport/build"

trex6 ★★★★★
()
Последнее исправление: trex6 (всего исправлений: 2)

Плюс к вышесказанному можно перейти на Qt5 и избавиться от зависимости от QextSerialPort. В пятой версии добавили стандартный QSerialPort.

Tweaker ★★★★☆
()

Либо размещать библиотеку по одинаковому относительному пути, либо, как сказал trex, передавать в qmake переменную путём добавления аргумента на шаге сборки qmake в режиме настройки проекта.

quiet_readonly ★★★★
()
Ответ на: комментарий от Tweaker

Плюс к вышесказанному можно перейти на Qt5 и избавиться от зависимости от QextSerialPort. В пятой версии добавили стандартный QSerialPort.

Гы. Или перейти на QSerialPort (точнее QtSerialPort) и для Qt4 (оно там тоже работает). И навсегда избавится от всяких LIBS и прочего хлама..

kuzulis ★★
()

абсолютные пути в проектном файле? вон из профессии

dib2 ★★★★★
()
7 октября 2013 г.
Ответ на: комментарий от trex6

Не заработало, почему то: https://dl.dropboxusercontent.com/u/31471800/p2p/ext.gif

CONFIG(debug,debug|release) {
    LIBS += -L$${QEXTSERIALPATH}build -lqextserialportd1
} else {
    LIBS += -L$${QEXTSERIALPATH}build -lqextserialport1
}

#INCLUDEPATH += C:\QtCreator\qextserialport-1.2\src
INCLUDEPATH  += $${QEXTSERIALPATH}src
inn
() автор топика
Ответ на: комментарий от trex6

Спасибо, разобрался. Оказывается можно через «дополнительные параметры», а можно и через переменные среды, но вместо { } использовать ( ) в pro файле.

inn
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.