當我鏈接到發佈/下一個,有一個致命的錯誤:C/C中的Debug /和Release /目錄下的libs有什麼區別?
LINK : fatal error LNK1146: no argument specified with option '/machine:'
然後我試圖Debug/
下鏈接到.lib
這一次,它的工作原理。
但是有什麼不同呢?
當我鏈接到發佈/下一個,有一個致命的錯誤:C/C中的Debug /和Release /目錄下的libs有什麼區別?
LINK : fatal error LNK1146: no argument specified with option '/machine:'
然後我試圖Debug/
下鏈接到.lib
這一次,它的工作原理。
但是有什麼不同呢?
通常,在優化發佈程序集時,不會對調試程序集進行優化。調試程序集通常也會包含類似源文件行號的垃圾文件。
但是爲什麼編譯失敗與釋放庫? – ieplugin 2010-07-14 15:59:38
@ieplugin:錯誤看起來像是你在命令行上犯了一個錯字,而不是該庫與它有任何關係。 – 2010-07-14 16:05:55
您可能希望單獨更改調試版本和發行版本的構建配置。
這實際上不是C問題;它涉及到使用的平臺。
通常情況下,將設置一個項目/解決方案來創建一個用於調試的版本和一個用於發佈的版本,並將它們放入Debug /和Release /目錄是區分的常用方法。調試版本通常編譯速度很快,運行速度較慢,幷包含將內部執行與源代碼鏈接的信息(如行號和變量名稱)。發佈版本通常編譯速度較慢,運行速度較快,並且要跟蹤內部發生的情況要困難得多。
顯然,如果只有適當的編譯器標誌,調試版本和發行版本之間必須存在差異。但是,在我熟悉的構建系統中,可以進行任意其他更改,有時這會導致僅發佈版本的錯誤,這很痛苦。或者,如果C代碼沒有正確指定行爲,則調試版本和發行版本可能會對它進行不同的解釋,這也是一種痛苦。
在這種情況下,我猜測它們的構建方式有所不同。沒有更多信息,我無法進一步評論。
什麼是操作系統?什麼是C編譯器使用?你使用什麼構建系統(如果你使用的是IDE,可能是IDE的一個標準)?什麼是你使用的圖書館。您的組織是否構建它,還是從外部獲取?瞭解這些事情會讓我們知道從哪裏開始尋找。
該錯誤似乎表明連接器的命令行生成出現問題。命令行在項目設置 - >配置屬性 - >鏈接器 - >命令行下看起來如何? (用於發佈模式)。在我的有一個選項像'/ MACHINE:X86'。 – Cogwheel 2010-07-14 16:04:32