同じ名前で異なる名前空間に2つのクラスがあります。これらのクラスやファイルの名前は変更できません。問題は、qmakeが、フォルダ情報を落としたMakefileを生成することです。したがって、フラットなファイル名でOBJECTSターゲットを作成します。 qmakeはによって生成されたqmake異なる名前空間に同じ名前の2つのクラスのシンボルを重複させる
Makefileは:あなたが見ることができるように
SOURCES = ../quml/src/lang/Type_.cpp \
...
../quml/src/uml/Type_.cpp \
...
OBJECTS = Type_.o \
...
Type_.o \
...
、非常に異なるフォルダ内の2つの.cppファイルがあります。これは、後で両方のオブジェクトファイルを1つの実行可能ファイルにリンクすることになっています。これは、Type_.oが.cppファイルのうちの1つだけから作成されるため(最後のものが勝つため)、同じファイルを2回取ることで、重複したシンボルが生成され、他のものが欠けています。これは、基本的に同じターゲットに複数の異なるフォルダに同じ名前のソースファイルを2つ持つことはできないということです。
誰も私がこれをどのように解決できるか考えてみませんか?プロ/プリムのトリックやsubdir'ingここで役立つか?
残念ながら、名前を変更することはできません。外部の依存関係が制御できないためです。静的ライブラリオプションを試してみます。 –