我有两个具有相同名称但在不同名称空间中的类。我无法更改这些类或文件的命名。问题是,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文件创建(最后一个获胜)。这基本上意味着我永远不会在同一个目标的不同文件夹中拥有两个具有相同名称的源文件。
有人知道我该如何解决吗?这里有什么专业的/ pri技巧或帮助吗?
最佳答案
对于这个问题,我发现最好的解决方案是尝试为每个文件夹创建.pro(或简单的Makefile)文件,并将其编译为静态库,或者简单地更改其名称。