我的C應用程序依賴於一些文件進行復制。這些文件是否包含在可執行文件中,而不是作爲獨立文件?它是否必須靜態鏈接?如果有問題,我正在使用Eclipse CDT。可以將文本文件和其他文件打包成C可執行文件
1
A
回答
3
有幾種方法可以將文件數據鏈接到可執行文件中。像Windows這樣的平臺允許您將數據作爲「資源」鏈接到可執行文件,並提供API來訪問這些資源(圖標和其他對象如何綁定到Windows可執行文件中)。如果你的平臺支持它,這可能是最好的方式 - 對它的支持是內置在IDE中的。
在一個較低的水平,你可能能夠使用鏈接直接鏈接文件轉換成可執行作爲尋址對象:
最後,如果你是處理像一些嵌入式平臺這樣的更原始的系統,您可以通過將文件轉換成C語言數組的字節來運行文件:
+0
+1選項的良好調查。 – bstpierre 2010-10-11 15:40:30
0
否。可執行文件僅包含編譯器和鏈接器的輸出。您的程序需要的任何輔助文件必須單獨打包。
1
除非您做了特別的事情,否則這些文件將不會包含在您的可執行文件中。你有沒有理由不能使用你的應用程序發佈文本文件?
如果要將文件烤到你的可執行文件,您可以在常量字符串烤他們:
const char myTextFileData[] = "the text of the file goes here";
當然,你必須預處理的文本文件到C源文件(記得要適當轉義引號,反斜槓,換行符和其他控制字符)。或者,您可以使用諸如objcopy
之類的工具將文件數據直接轉換爲目標文件,然後將該目標文件鏈接到可執行文件中。
相關問題
- 1. 將文件打包成一個可執行文件(C#)
- 2. 將NET4打包成可執行文件
- 3. 將文件打包成ELF可執行文件
- 4. 將JRuby二進制文件打包成可執行文件夾
- 5. 我想將可執行文件注入其他可執行文件
- 6. 如何將IeEmbed.exe和MozEmbed.exe打包成可執行文件Jar文件
- 7. 可執行文件是否可以將某些內容返回給其他可執行文件?
- 8. 如何使用可執行文件夾包含文本文件
- 9. m3u8文件是否可以包含其他m3u8文件?
- 10. 文件可執行文件時,從其他應用程序
- 11. 可以將R文件轉換爲可執行文件嗎?
- 12. 是否可以將二進制可執行文件轉換爲其原始代碼和其他文件?
- 13. 將Unix可執行文件轉換爲Windows可執行文件
- 14. 使用單聲道可執行文件打包.dylib文件
- 15. 如何打包歸檔文件到可執行文件?
- 16. 將可執行文件輸出到文本文件的Powershell
- 17. 如何將可執行文件轉換爲文本文件。
- 18. 將Node.js-Scripts + node.exe打包成一個可執行文件
- 19. C++可執行文件生成器
- 20. 使Eclipse生成C++可執行文件
- 21. 動態包含C文件中的可執行文件
- 22. 可以將一個java文件製作成可執行文件嗎?
- 23. 生成本機可執行文件
- 24. 將exe文件打包成java文件
- 25. 包裝和保護可執行文件
- 26. 將可執行文件與Firefox插件一起打包
- 27. C++運行可執行文件和管道輸出到文件
- 28. 可執行文件和Django
- 29. PowerShell和可執行文件
- 30. C#包含其他文件
這個問題並不清楚。將[壓縮] [1] exe文件和文件放在一起並分發壓縮文件是一個選項? [1]:http://en.wikipedia.org/wiki/ZIP_%28file_format%29 – Arun 2010-10-11 01:29:28
不,我的意思是文本文件只能在可執行文件中訪問。它們包含在可執行文件中,而不是文件系統中。 – 2010-10-11 01:33:13
我明白了。然後,首先想到的選項是創建一個'[static] const char * file_contents = ...'來保存該文本。 – Arun 2010-10-11 01:38:08