我正在創建混合模式C++程序集。程序集包含指向C++非託管類型的指針,所有類都是C++/CLI類型。/CLR選項忽略混合裝配
我有選項/ clr。但是,每當我生成DLL我得到警告:
warning LNK4044: unrecognized option '/clr'; ignored
此警告沒有意義,我彷彿我打開/關閉CLR它顯然不能被編譯爲本地C++代碼。那麼,/ clr選項如何被無法識別和忽略?
我正在創建混合模式C++程序集。程序集包含指向C++非託管類型的指針,所有類都是C++/CLI類型。/CLR選項忽略混合裝配
我有選項/ clr。但是,每當我生成DLL我得到警告:
warning LNK4044: unrecognized option '/clr'; ignored
此警告沒有意義,我彷彿我打開/關閉CLR它顯然不能被編譯爲本地C++代碼。那麼,/ clr選項如何被無法識別和忽略?
/clr
是一個編譯器標誌,而不是鏈接器標誌。 (事實上,你得到一個LNK????
錯誤表明你試圖通過這個標誌鏈接器。)
如果你是從Visual Studio內部工作,那麼你所要做的就是右鍵單擊該項目和「配置屬性」 - >「常規」。然後在項目詳細信息的右側,將「公共語言運行時支持」設置爲「公共語言運行時支持(/ clr)」。這將創建一個混合模式的C++項目。
這不會將/ clr標誌添加到鏈接器。
我只根據@ Juba的評論更改了設置。所以我不確定爲什麼它會傳遞給鏈接器? – Seth 2011-05-29 23:59:15
@Seth:我也是。也許在這裏發佈你的項目文件的內容,這樣我們可以看看它。 (這只是XML,將其格式化爲代碼。) – ildjarn 2011-05-30 01:22:55
Found/clr作爲鏈接器中的附加選項。老實說不知道它是如何到達那裏的。我已經在.vcproj文件中刪除它,並且都很好。 – Seth 2011-05-30 04:32:29