2012-02-18 128 views

回答

0

大聲笑,但我們需要更多的信息來回答你的問題。對於初學者來說,基本上,它是說調用鏈接器的命令行比cmd.exe本身允許的緩衝區大。如果我沒有記錯,可能有一種方法可以讓命令行在命令行上使用更大的緩衝區。或者你可以將shell更改爲windows powershell,看看是否可以工作。

1

對於工具中的固定命令行長度,您無能爲力。您可能想嘗試將您的目標文件合併到一對庫中,然後執行最終鏈接並將這些庫鏈接在一起。這會在你的Makefile中引入另一個步驟,但會繞過命令行太長的錯誤。

4

您可以獲取nmake將命令行參數寫入文件,然後使用鏈接選項從文件中讀取參數。

尋找「在線文件」,如http://msdn.microsoft.com/en-us/library/z440c98k(v=vs.80).aspx

這是因爲我做這個很長一段時間,但我記得用法是一樣的東西:

foo.exe : foo1.obj foo2.obj foo3.obj 
    link.exe @<< 
foo1.obj 
foo2.obj foo3.obj 
... more arguments, macros etc on one or more lines 
<< 
    rem other commands go here if you want 

基本上你只需要一個普通的nmake命令行,但一對<<標記告訴nmake將選項寫入文件(並且它們被該文件的名稱替換),然後@通知鏈接從該文件讀取參數。

KEEP選項(可能帶有指定的文件名)可用於調試 - 如果鏈接barfs,您可以查看文件以查看實際傳遞給它的內容。

+0

你能舉個例子說明他們的用法嗎?在msdn頁面中沒有可靠的例子。 – 2012-02-19 00:13:09

+0

請參閱編輯版本 – 2012-02-20 21:57:48