我已經創建了一個C++程序包中的deb包。我遵循這個簡單的指南https://ubuntuforums.org/showthread.php?t=910717。我成功安裝了deb在usr/local/bin。
但是我正面臨以下問題。當我從主目錄運行我的應用程序時,C++主程序啓動,但是當它到達需要從設置文件中讀取的位置時,它的行爲就好像它不存在一樣。該文件位於與C++可執行文件位於同一位置的文件夾中。
另一方面,當我去 - > usr/local/bin並從那裏運行我的C++應用程序時,不存在任何問題。我也給所有文件提供了讀寫和執行權限。 由於/ usr/local/bin已存在於我的路徑中,爲何會出現此錯誤?從主目錄執行的Ubuntu 16.04的usr/local/bin中安裝的C++應用程序無法正確運行
0
A
回答
1
因爲應用程序具有當前路徑作爲路徑,而不是其安裝位置。你需要找出應用程序路徑正確加載文件 - 如果你使用Qt你有applicationPath,如果不是你必須:
char szTmp[32];
sprintf(szTmp, "/proc/%d/exe", getpid());
int bytes = MIN(readlink(szTmp, pBuf, len), len - 1);
if(bytes >= 0)
pBuf[bytes] = '\0';
return bytes;
以確定應用程序的安裝文件夾,並加載基於該文件。
相關問題
- 1. 無法安裝的Ubuntu 16.04
- 2. gradle在ubuntu中安裝不正確16.04
- 3. 應用程序從哪裏運行的可執行目錄?
- 4. 捆綁安裝從不正確的目錄運行
- 5. 從SciTE運行時控制檯程序無法正確執行
- 6. 如何在Ubuntu 16.04上從根目錄運行可執行文件?
- 7. 在Ubuntu中使用C#運行Selenium網絡驅動程序16.04
- 8. Roo安裝程序,無法從項目文件夾執行roo
- 9. 安裝了新鮮的grails - 應用程序無法運行
- 10. 爲什麼我安裝的應用程序無法運行?
- 11. 安裝後無法運行我的應用程序?
- 12. Scylla 1.4無法在Ubuntu上安裝16.04
- 13. 無法在Ubuntu上安裝MySQL 16.04
- 14. 在Ubuntu上無法安裝Jack 16.04
- 15. 無法爲ubuntu安裝mediawiki 16.04
- 16. 無法在Ubuntu上安裝節點16.04
- 17. 無法在Ubuntu上安裝Chrome 16.04
- 18. 無法在Ubuntu上安裝php5-pgsql 16.04
- 19. 無法在Ubuntu上安裝Appium 16.04
- 20. 將git安裝到運行Ubuntu的虛擬機上16.04
- 21. 無法執行時安裝程序
- 22. 安裝應用程序無法在MDM中執行
- 23. 安裝應執行兩次以安裝應用程序的主要升級
- 24. 應用程序無法從ToastNotification操作正確運行
- 25. 從C#運行安裝程序#
- 26. 從C#安裝程序安裝程序運行另一個MSI
- 27. 從pip安裝的應用程序進行python運行測試
- 28. 無法運行Vagrant安裝程序
- 29. 的Ubuntu 16.04提交前的安裝目錄導致錯誤
- 30. SVN(源代碼)在Linux的安裝目錄(Ubuntu的16.04)
你的文件是由相對路徑給出的? –