#cpp #qtcreator #gdb
Имею проект C++ под qmake с иерархической структурой TEMPLATE=SUBDIRS Module1 ModuleStaticLib1 UnutTest1 Module2 ModuleStaticLib2 UnutTest2 Module3 Приложение В каждом подпроекте могут быть *.cpp файлы с одинаковыми именами Module1/ModuleStaticLib1/Controller.cpp - реализация класса namespace Module1::Controller UnitTest1/Controller.cpp - юнит тест класса Module1::Controller Module2/ModuleStaticLib2/Controller.cpp - реализация Module2::Controller UnitTest2/Controller.cpp - юнит тест класса Module2::Controller Работаю в qtcreator. Обратил внимание на странный баг при отладке, если установить точку останова в UnitTest1/Controller.cpp, она ставится также и в Module1/ModuleStaticLib1/Controller.cpp (может и в другие одноименные файлы, но я гоняю один тест). В рамках одного модуля имена файлов не повторяются. Кроме того мой коллега, выразил сомнение в таком подходе, могут быть проблемы со сборкой(я не замечал). На сколько корректно использование одинаковых имен в разных модулях, и чем может быть баг с точками оcтанова qtcreator или GDB? QtCreator 3.5.81 gcc version 4.8.4 GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1 Linux Mint17 PS Демонстрация структуры "Глюкодрома" =)
Ответы
Ответ 1
По-моему, опция "Set breakpoints using a full absolute path" решает проблему с дублированием точек останова.Ответ 2
Будет жуткий глюкодром - среда объединяет файлы с равными именами. Но гораздо хуже будет глюкодром в сознании человека, которому вы этой лазанье придется разбираться. Хотя бы из-за этого стоит уйти от такой структуры. UPD от 9 октября 2016. Qt creator в связке с MSVC2012 работает как попало, если в проекте есть одинаковые по именам файлы, он затирает одни объектники (*.obj) другими, более поздними, так как сваливает все в один каталог. В итоге - тонны ошибок при линковке.
Комментариев нет:
Отправить комментарий