我有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技巧或子目录会在这里有所帮助吗?
答案 0 :(得分:1)
我发现这个问题的最佳解决方案是尝试为每个文件夹创建.pro(或简单的Makefile)文件,并将它们编译为静态库,或者只是更改它们的名称。