Re: [問題] exe檔無法發佈到其他電腦
※ 引述《rockwalking (技安)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: VC++2010 professional with QT 1.2.2 add-in;
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: QT 5.1.0; OpenCV
: 問題(Question):
: 我compile(Release)的exe檔在其他電腦雙擊沒有反應;
: 網路上及爬文的方法還是不行
: 目標電腦有裝VC++2010
: .dll有附上
: MFC選用靜態資料庫
: 感謝
我之前的案例跟你差不多
後來請對方(Target)灌Qt並用對方的Qt的dll檔取代我給的之後就可以Run了
不過總不能每次都要Target灌個上G的Qt吧...
所以就開始找原因了
Dependency Walker 也用過.....不過情況很詭異
有時候是Checksum有問題 卻可以Run
有的沒問題卻不能Run
去檢查不同電腦灌的Qt的dll檔其大小也一樣
後來用binary的比較程式 才發現不同電腦灌Qt
所產生的Dll檔其內容會不同
再進一步觀察 發現該Dll檔案會紀錄Qt的安裝路徑
不同電腦如果安裝Qt的路徑不同 或是沒裝就會出問題
進一步測試 用 Hex Editor 把某些路徑改掉 故意改成錯的
(裡面有很多const的變數)
發現有的路徑改掉沒影響 但有的改掉就會出問題
最後確定是pulgins的路徑影響的
(qt安裝目錄下有資料夾為pulgins,裡面也有很多dll)
再來我就把路徑改回去 弄成對的 再把plugins裡面的東西一個個拿掉
發現我有參考到 "plugins\codecs"
(拿掉這目錄後我程式會出問題)
最後才知道 unicode轉big5的功能有用到 plugins\codecs\qtwcodecs4.dll
再來....
我將qtwcodecs4.dll跟exe執行檔放在一起
把dll的路徑弄成錯的(模擬Target端的狀況) 一樣還是不能執行
後來下了關鍵字 "qt plugins deployment" 去估狗查
才發現可以加個檔案 "qt.conf" 去指定路徑
所以我就放了個qt.conf
內容如下
[Paths]
Prefix = ./
然後在執行檔目錄下建目錄 "plugins\codecs\"
然後把qtwcodecs4的dll和lib都放進去 就可以Run了
你的狀況我猜一樣是plugins的問題
但是你是參考到plugins裡的哪個東西我就不知道了
這要你自己Try
(不然你把plugins整包都附上去應該也可以XDD)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.148.58
推
09/28 21:30, , 1F
09/28 21:30, 1F
→
09/28 21:52, , 2F
09/28 21:52, 2F
→
09/28 21:53, , 3F
09/28 21:53, 3F
→
09/28 21:54, , 4F
09/28 21:54, 4F
推
09/28 23:22, , 5F
09/28 23:22, 5F
→
09/28 23:23, , 6F
09/28 23:23, 6F
推
09/28 23:32, , 7F
09/28 23:32, 7F
→
09/29 00:11, , 8F
09/29 00:11, 8F
→
09/29 00:11, , 9F
09/29 00:11, 9F
→
09/29 00:13, , 10F
09/29 00:13, 10F
→
09/29 00:25, , 11F
09/29 00:25, 11F
→
09/29 00:26, , 12F
09/29 00:26, 12F
→
09/29 00:27, , 13F
09/29 00:27, 13F
→
09/29 00:28, , 14F
09/29 00:28, 14F
→
09/29 00:29, , 15F
09/29 00:29, 15F
→
09/29 00:30, , 16F
09/29 00:30, 16F
推
09/29 01:39, , 17F
09/29 01:39, 17F
→
09/29 02:14, , 18F
09/29 02:14, 18F
推
09/29 02:17, , 19F
09/29 02:17, 19F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章