2010-05-11 46 views
0

我問這個問題前面還有:LNK2005:在VC刪除已定義的錯誤++

LNK2005: delete already defined error in VC++

我得到的回答是,我應該使用的DLL動態版本。我做到了,編譯得很好。 現在,但是當我將exe文件給我的一個同事運行時,他們告訴我 - 他們不能運行它,因爲它需要一些共享的dll,所以他們需要一個靜態的dll。 當我嘗試做靜態構建時,我得到了我在上一個鏈接中提到的錯誤。 做的,我需要提供一些其他文件以及exe。 我已經得到.lib文件以及構建目錄。我還應該提供一個嗎?

我可以在我的m/c無論在哪個目錄下運行它。

任何幫助是非常讚賞,因爲我真的卡住了。

由於提前, Suchita

+0

你提供了* .dll給你的同事嗎? – Sunscreen 2010-05-11 14:13:11

回答

0

他們可能只需要安裝任何一個的Visual Studio版本,內置Visual Studio的再發行組件包。你可以從MS下載。

+0

我需要將它安裝在我的m/c上,否則任何使用此應用程序的人都需要安裝它。但後來我不能要求我的客戶在他們的m/c上安裝一些額外的軟件包。 – user333422 2010-05-11 08:34:39

+0

任何使用該應用程序的人都需要安裝它。理想情況下,應該將可重新分發的安裝程序與您的應用程序打包在一個可安裝的軟件包中。 – Vicky 2010-05-11 08:47:10

+0

您可以添加版本和調試也不同:需要在Release中構建程序才能在未安裝Visual Studio的計算機上運行它(例如:http://www.microsoft.com/下載/ details.aspx?FAMILYID = 32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang = EN) – Default 2010-05-11 08:53:33

0

如果鏈接到動態RTL,則動態RTL必須存在於要運行可執行文件的系統上。在這些機器上安裝可再發行組件包。隨程序提供的安裝程序將執行此操作。

除非您確切地知道您在做什麼,否則在鏈接不同的EXE/DLL時不應鏈接到靜態RTL。