У меня есть пакет ROS, который включает в себя графические интерфейсы QT4. Мой код находится в папке Project_name/src/test/*.cpp
и мой включает в Project_name/include/test/*.h
Добавить включить каталоги в AUTOMOC
должны быть созданы некоторые qt4 MOCS как некоторые заголовочные файлы содержат Q_OBJECT в своих классах.
Я пробовал set(CMAKE_AUTOMOC ON)
в файле cmake, но, как кажется, он не ищет папку/include/test /. AUTOMOC утверждает, что работает либо bu, ища исходные файлы для файлов moc_ * * .cpp, либо изучая файлы заголовков для Q_OBJECT.
Я также попытался включить moc_***.cpp
в исходный файл (например, /src/test/a.cpp
). Так он искал a.h
, но не смог найти его в include/test/a.h
.
я должен отметить, что если я удалить Q_OBJECT из классов компиляция прошла успешно, как включить/папка добавляется так: include_directories(include ${catkin_INCLUDE_DIRS} )
Наконец я попытался использовать QT4_WRAP_CPP, но по какой-то причине он не мог «т найти МОС, а также и ссылку не удалось (хотя в другом проекте с теми же параметрами в файле Cmake работает: /)
Edit: Найдено решение. В добавил в файле CPP:
#include "../../include/test/moc_a.cpp"
и нашел .h в включают/тест.
Хотя что-то мне подсказывает, что это не правильный путь: P