qmake在不同名称空间中具有相同名称的2个类的重复符号

时间:2012-02-02 21:48:31

标签: qt qt-creator qmake

我有2个具有相同名称但在不同名称空间中的类。我无法更改这些类或文件的命名。问题是,qmake生成一个包含文件夹信息的Makefile。因此它使用平面文件名创建OBJECTS目标。

qmake生成的Makefile:

SOURCES       = ../quml/src/lang/Type_.cpp \
    ...
    ../quml/src/uml/Type_.cpp \
    ...

OBJECTS       = Type_.o \
    ...
    Type_.o \
    ...

如您所见,在非常不同的文件夹中有2个.cpp文件。这应该将两个对象文件稍后链接到一个可执行文件中。它确实尝试了,但是两次使用相同的文件,生成重复的符号而缺少其他符号,因为Type_.o只是从一个.cpp文件创建的(最后一个获胜)。这基本上意味着我永远不会在同一目标的不同文件夹中有2个具有相同名称的源文件。

任何人都知道如何解决这个问题?任何专业人士/ pri技巧或子目录会在这里有所帮助吗?

1 个答案:

答案 0 :(得分:1)

我发现这个问题的最佳解决方案是尝试为每个文件夹创建.pro(或简单的Makefile)文件,并将它们编译为静态库,或者只是更改它们的名称。