2012-02-02 47 views
3

我有2個具有相同名稱但名稱空間不同的類。我無法改變這些類或文件的命名。問題是,qmake生成一個包含文件夾信息的Makefile文件。所以它使用平面文件名創建OBJECTS目標。qmake在不同命名空間中使用相同名稱的2個類的重複符號

的Makefile通過QMAKE產生:

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

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

正如你所看到的,也有非常不同的文件夾2個.cpp文件。這應該將兩個對象文件稍後鏈接到一個可執行文件中。它確實如此,但是採用兩次相同的文件,產生重複的符號,並且缺少其他符號,因爲Type_.o是僅從一個.cpp文件(最後一個獲勝)創建的。這基本上意味着我永遠不能在應用於同一個目標的不同文件夾中使用具有相同名稱的2個源文件。

任何人有任何想法我可以解決這個問題?在這裏有任何親/詭計或subdir'ing幫助?

回答

1

的最佳解決方案,我發現這個問題是試圖創建的.pro(或簡單的Makefile)文件,每個文件夾,並把它們編譯成靜態庫,或簡單地改變他們的名字。

+0

不幸的是,我無法更改名稱,因爲有外部依賴關係,我無法控制。我將嘗試使用靜態庫選項。 – 2012-02-03 12:45:11

相關問題