2014-10-09 122 views
0

我目前的問題,與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中創建項目時,我選擇了空項目。除了我提到的之外,沒有改變配置屬性。

+0

您是否將FLTK構建爲/ MT?嘗試將FLTK構建爲/ MT,然後將其與您的程序鏈接起來,該程序也構建爲/ MT。刪除「忽略」的文件 - 它告訴你是否有什麼錯誤。如果一切正常,則不應該有任何錯誤或警告。如果有錯誤,請修復它們而不是使用忽略。 – cup 2014-10-09 17:02:32

+0

我完全按照您的要求做了,而FLTK測試示例已編譯並在另一臺PC上運行!但是,我注意到將Stroustrups標頭添加到任何項目中導致它無法編譯,除非我以Debug模式構建。我會嘗試讓Stroustrups Headers先生工作,如果這不起作用,我會將其刪除。非常感謝! – Cupcake1029 2014-10-10 10:01:35

+0

看看include目錄。它們在Debug和Release上都應該相同。 – cup 2014-10-10 11:58:54

回答

1
+0

感謝您的回覆。我實際上考慮過這一點,如果沒有其他選擇,我可能會採取這種做法。但是,我希望我的程序儘可能便攜。例如,有了這個修復程序,如果我最終在一臺無法訪問互聯網的工作電腦上工作,我無法讓我的程序正常工作。 – Cupcake1029 2014-10-09 04:56:49

+0

在與您的應用程序相同的目錄中安裝「C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ redist \ x86 \ Microsoft.VC120.CRT」中的文件。 – 2014-10-09 05:07:27

+0

其實,現在我想到了,這是一個非常好的主意。儘管如此,我仍然很高興能夠讓我的程序完全獨立。謝謝。 – Cupcake1029 2014-10-09 07:54:21