我在一個特定目錄的不同子目錄中有四個不同的.exes。所有的程序都需要完全相同的.dll(Qt5Core,Qt5Gui和Qt5Widgets)。有沒有辦法讓這三個.dll只在根目錄中,而不必將它們複製到每個子目錄中?將qt dll鏈接到多個可執行文件
1
A
回答
1
Here you find the order其中在Windows上搜索DLL路徑:
由於安全的DLL搜索模式是en默認體健,順序是
- 從其中加載應用程序的目錄。
- 系統目錄。使用GetSystemDirectory函數獲取此目錄的路徑。
- 16位系統目錄。沒有獲得該目錄路徑的函數,但它被搜索。
- Windows目錄。使用GetWindowsDirectory函數獲取此目錄的路徑。
- 當前目錄。
- PATH環境變量中列出的目錄。請注意,這不包括App Paths註冊表項指定的每個應用程序路徑。計算DLL搜索路徑時不使用App Paths鍵。
所以最容易做的事情是要確保你從你放置的DLL(5)的工作目錄中運行你的應用程序。這可以通過編寫一個首先在那裏導航的starter.bat文件,然後相對於DLL direcory運行應用程序來完成。
另一種方法是將DLL目錄添加到啓動器.bat文件(6.)中的PATH中。
在這兩種情況下,您都需要爲每個要運行的.exe包裝腳本。
如果可以確保指向應用程序的鏈接正確設置工作目錄,則可以避免這種情況。如果您有一個安裝程序爲用戶創建快捷方式,並且您知道用戶不會通過右鍵單擊.exe自行創建一個自己,那麼這將起作用。
有可能還在使用hardlinks or junctions的方式,但我不知道你是否可以複製和部署在Linux上那些像符號鏈接,或者如果您需要在目標系統上創建它們。
0
相關問題
- 1. 將多個C庫鏈接到C創建可執行文件
- 2. 運行鏈接到0x400000的多個可執行文件
- 3. 複製可執行文件鏈接到可執行文件目錄的所有dll
- 4. Cmake只鏈接到可執行文件
- 5. 將qt中的dll鏈接到ct中以讀取.mat文件
- 6. g ++無法將.o文件鏈接到可執行文件中
- 7. 鏈接一個可執行文件
- 8. Qt並鏈接到一個外部DLL
- 9. QT Creator中的部署和靜態包裝將QT和OpenCV鏈接到單個可執行文件中
- 10. helink dll可執行文件
- 11. 使用CMake將Qt DLL複製到Windows上的可執行文件目錄
- 12. C++將各種資源文件鏈接到一個可執行文件中
- 13. CMake - 僅在需要時將庫鏈接到可執行文件
- 14. 將可執行文件鏈接到代碼塊
- 15. GCC將共享庫鏈接到可執行文件
- 16. 如何將庫鏈接到cmake中的可執行文件?
- 17. 將dyld鏈接到可執行文件本身的函數?
- 18. 將libcutils鏈接到本機可執行文件
- 19. 將Qt DLL鏈接到Qt App - 未解決的引用
- 20. 可以將.so文件靜態鏈接到可執行文件嗎?
- 21. 將多個文件拖放到可執行文件C上#
- 22. C++可執行文件鏈接問題
- 23. 在將文件鏈接到最終可執行文件之前將文件合併到單個目錄中
- 24. 可以將單個xml文件鏈接到多個java類嗎?
- 25. Qt和可執行的DLL的
- 26. 在Qt中鏈接win32 dll
- 27. 一個大的可執行文件或很多小的DLL?
- 28. 調試調試DLL鏈接到發佈的可執行
- 29. 可移植性如何將可執行文件鏈接到可加載模塊?
- 30. 鏈接後最小的可執行文件大小