C++ 向生成的moc文件添加额外名称

C++ 向生成的moc文件添加额外名称,c++,qt4,cmake,ros,C++,Qt4,Cmake,Ros,我有一个奇怪的问题,我找不到答案,我一直在用ros hydro catkin编写一个带有qt的catkinized应用程序,在catkin制作我的项目后,有几次它给了我一个奇怪的错误,它不是常量,可能在10次编译中我有1次遇到这种情况。此外,该程序在成功编译中也能完美地工作。问题是,当qmake创建moc文件时,我的类有一个额外的名称,奇怪的是,这个名称不是恒常的。我以前见过两个不同的名称,这个问题并不适用于我的所有类,并且每个类都随机出现一个! 我在下面用这个函数在两个不同的编译中编写了函数的

我有一个奇怪的问题,我找不到答案,我一直在用ros hydro catkin编写一个带有qt的catkinized应用程序,在catkin制作我的项目后,有几次它给了我一个奇怪的错误,它不是常量,可能在10次编译中我有1次遇到这种情况。此外,该程序在成功编译中也能完美地工作。问题是,当qmake创建moc文件时,我的类有一个额外的名称,奇怪的是,这个名称不是恒常的。我以前见过两个不同的名称,这个问题并不适用于我的所有类,并且每个类都随机出现一个! 我在下面用这个函数在两个不同的编译中编写了函数的原型

    1-> static const uint qt_meta_data_ros__message_traits__JURSEGMainWindow[] ...
    2-> static const uint qt_meta_data_jur_gui_segmentation__JURGUIROSNode[] ....    
正如您在第一个ros_消息_traits和第二个jur_gui_分段中看到的,我的包的名称是额外的


谁都有主意!非常感谢。

文件是否与-j并行生成?大多数情况下,您的所有文件都可能在最终链接阶段之前编译,然后每隔一段时间,最终链接阶段在一个或多个并行作业完成其工作之前开始。是的,catkin宏用于生成的cmake项目会运行此命令“make-j4-l4”。而且,当我在qtcreator中编译它时,这个问题甚至没有发生过一次。另一件事是,我发现我在问题的末尾添加了这个,它可能会有帮助。如果您提供最小的CMakeLists.txt,它将具有完全相同的行为,它将比这些错误更有帮助。