我目前的問題,與C++ FLTK庫(v 1.30),是我從來沒有能夠創建一個適用於其他PC的Release版本。C++ FLTK 1.30 MSVCR120.dll丟失
在閱讀Bjarne Stroustrup的「Programming Principles and Practice using C++」時,我開始真正享受使用FLTK,只是意識到我不能在沒有安裝DLL或運行時的情況下在其他PC上使用我的程序。
所有的代碼運行和編譯都很好,但是當我嘗試將它放在另一臺PC上時,它會彈出錯誤「MSVCR120.dll missing」或者其他行。
我的IDE是Microsoft Visual Studio 2013 Professional,我的FLTK版本是1.30。
我的項目屬性如下:
附加依賴: fltk.lib wsock32.lib comctl32.lib fltkjpeg.lib fltkimages.lib
(顯然,對於調試模式它的意思是fltkd.lib,fltkjpegd.lib等)
> Ignore Specific Default Libraries:
libcd.lib LIBCMT.lib(我添加了LIBCMT,這樣在/ MT中編譯時不會產生錯誤,這可能是一個壞主意,但程序仍然編譯並運行時沒有錯誤,除非我嘗試運行它另一臺PC)
> Runtime Library: Multi-threaded (/MT)
我正在編譯「Release」。
我遵循本書附錄中的每一條指令,它解釋瞭如何安裝FLTK,除了我使用了不同的版本(FLTK 1.1.9似乎沒有編譯),我構建並運行FLTK.sln而不是.DSW。
當我在VS2013中創建項目時,我選擇了空項目。除了我提到的之外,沒有改變配置屬性。
您是否將FLTK構建爲/ MT?嘗試將FLTK構建爲/ MT,然後將其與您的程序鏈接起來,該程序也構建爲/ MT。刪除「忽略」的文件 - 它告訴你是否有什麼錯誤。如果一切正常,則不應該有任何錯誤或警告。如果有錯誤,請修復它們而不是使用忽略。 – cup 2014-10-09 17:02:32
我完全按照您的要求做了,而FLTK測試示例已編譯並在另一臺PC上運行!但是,我注意到將Stroustrups標頭添加到任何項目中導致它無法編譯,除非我以Debug模式構建。我會嘗試讓Stroustrups Headers先生工作,如果這不起作用,我會將其刪除。非常感謝! – Cupcake1029 2014-10-10 10:01:35
看看include目錄。它們在Debug和Release上都應該相同。 – cup 2014-10-10 11:58:54