看板 C_and_CPP 關於我們 聯絡資訊
我的程式是用 VC 2008 編的 現在我要把執行檔打包送出 可是在 target 上一直無法執行 我有在 target 上用 DependencyWalker 看 沒有缺 dll 但是一直出現: Error: The Side-by-Side configuration information for "檔名" contains errors. 檔名裡是我自己用 VC 編出的 binary 我試過很多方法了 包括複製 manifest 到目錄裡 都沒用 裝 redist.exe 有機會解決這個問題 可是這個方法需要管理者權限, 不是每台電腦都有裝 我也有看過 MSDN 上關於 XCopy 的方法 一樣沒用 .... 我想問到底怎樣發佈才能正常執行 PS: 也許有人會建議我改用 MinGW, 不過有些組件 MinGW 無法移植 因此不考慮換其他 toolchain -- 自High筆記(半荒廢) http://legnaleurc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.213.3
VictorTom:Project->Property->Config Properties->C++->Code Gen 07/03 22:01
VictorTom:Runtime Lib => 選沒有dll的那兩個的其中一個試試.... 07/03 22:02
VictorTom:Debug版就選 /MTd, Release版就選 /MT, 猜是這個問題:) 07/03 22:03
VictorTom:這個預設模式是小弟我很度爛VC++2003以後版本的一點.... 07/03 22:04
VictorTom:這問題連build dll也會遇到; 不然就像您說的裝redist了 07/03 22:05
zlw:如果有用顯示連結呼叫DLL,在Dependency Walker看不出相依性 07/03 22:06
legnaleurc:拋棄 dll 我就不能用 plugin ... 07/03 22:10
legnaleurc:而且弄成 static link 只能算 work around 吧... 07/03 22:11
legnaleurc:然後這和手動呼叫DLL 沒啥關係, 因為連 startup 都不行 07/03 22:12
zlw:我只會簡單的偵錯,在懷疑有錯誤想設中斷點的地方,都加一行 07/03 22:26
zlw:類似cout<<"bp1"; 然後不能執行的電腦用OllyDbg搜尋這些字串 07/03 22:26
zlw:下中斷點,跑反組譯的指令單步偵錯看是哪部份問題。 07/03 22:27
zlw:另外你說的 side-by-side 錯誤,應該是 dep. walker 給的,那 07/03 22:28
zlw:直接執行會出現的錯誤是寫怎樣呢? 07/03 22:29
legnaleurc:這個應用程式設定不正確 重新安裝...可以解決問題 07/03 22:51
legnaleurc:我不是用中文版OS,不過應該是這樣 07/03 22:51
legnaleurc:基本上debuger應該也沒用...因為根本沒有執行 07/03 22:53
VictorTom:Err~請問小弟說的那個方法重build binary沒用嗎!? 07/03 23:17
VictorTom:不只.exe檔喔, 有自己建的.dll也都要這樣....@_@" 07/03 23:35
zlw:http://www.thecodeway.com/blog/?p=21 根據這篇文章,應該就 07/03 23:36
zlw:是dll的問題,他提供的第三個方法,複製『對應』的dll你試過嗎 07/03 23:36
VictorTom:啊~~我看懂了....Orz 可以的話是z大的方法三比較好.... 07/03 23:42
VictorTom:但是, 我記得用manifest這東西, 以後VC sp一裝什麼的, 07/03 23:43
VictorTom:很容易只是因為個dll version的問題又讓程式不能run了. 07/03 23:44
VictorTom:用static link除了程式會變肥一點, 目前也想不出有什麼 07/03 23:44
VictorTom:壞處@_@" 事實上小弟反而覺得, 除非是OS/DX這類平台保證 07/03 23:45
zlw:不能在編譯的時候關掉這個功能嗎,沒別台電腦可以測 07/03 23:46
VictorTom:的.dll, 小弟我寧可都用static link來處理這個問題Orz 07/03 23:47
legnaleurc:我在本文裡就有提到我有複製 manifest 07/04 00:03
legnaleurc:dependency walker 也顯示沒有缺失的 dll 07/04 00:03
legnaleurc:問題在於我無法載入那些複製的 dll 07/04 00:04
legnaleurc:然後,不用dll我就不能用plugin,不是不想用,是不能用 07/04 00:04