2012-11-13 84 views
0

This question及其答案解釋了鏈接命令行順序的重要性。如何解決gnu鏈接器命令行挑剔問題?

不過,我處理了很多含線的makefile像

$(CC) $(LDFLAGS) $^ -o [email protected] 

Aparently,命令,如這些只是在某些系統上工作,但沒有對礦井。有沒有辦法解決這個問題,除了找到並修補所有Makefiles?

我用gcc(Ubuntu的/ Linaro的4.6.3-1ubuntu5)4.6.3

編輯澄清:
我做了很多的補丁和融合爲我工作的一部分(通常Buildroot裏面或LTIB) ,並且我遇到了像這樣寫的多個makefile。網上的一些示例編譯命令也遵循相同的模式。

+0

究竟是什麼故障,最好給出一個例子,展示makefile如何擴展它 – Mark

+1

爲什麼你想要解決這個問題? Makefiles已損壞,應該修復。 –

回答

1

所以,問題是,一些白癡已經創建了一個makefile,將所有庫選項放在.o文件之前。據推測,那裏有一些不在乎的工具鏈,但這對你沒有幫助。

這裏有只有兩個選擇:

  1. 修復生成文件。
  2. 創建一個編譯器包裝程序,對選項進行重新排序。這樣的包裝通常會被打破,但可以使它適用於makefile所使用的確切模式。

我確實懷疑--start-group是否會對您有所幫助,但一個快速實驗表明不是。