我正在嘗試編寫一個宏,它向gcc編譯器添加了一個可執行文件的註釋。這不是用於鏈接的目的,我只是想添加文本評論。 gcc中是否存在與此相同的#pragma註釋?gcc當量#pragma評論
回答
我不確定「將評論添加到可執行文件」意味着什麼。誰或將要消費什麼,顯示甚至注意到這些評論?儘管如此,如果你只是想確保某些字符串被嵌入到程序的某個地方,那麼只需在文件範圍內將其聲明爲普通(C)字符串即可。
static const char my_comment[] = "This comment should appear in the compiled executable";
如果你不想弄亂.data
部分(這哪裏是static const char[]
會去)與意見,或者相反,想從.comment
部分容易被發現的評論,你可以添加評論有與內聯彙編的一點點:
__asm__(".section .comment\n\t"
".string \"Hello World\"\n\t"
".section .text");
的gcc也has#ident
指令,它複製文本如果有一個合適的部分。在ELF的情況下,它將是.comment部分。即使該指令不是標準的,該解決方案可能比前者更便攜。
#ident "Hello World"
如果成功,這將是顯而易見的,有額外的二進制」之後。評論「在目標文件中? – user2559503 2014-08-29 21:01:57
我不太明白你的問題。此代碼將以文本的形式向.comment部分添加字符串「Hello World」。默認情況下,Gcc已經在該部分生成了它自己的版本字符串。 – user2079303 2014-08-29 21:12:55
在AIX 6.0.1世界中,使用'.csect .comment [RO]'而不是'.section .comment'並使用'.csect .text [PR]'而不是'.section .text'作爲編譯器,彙編器和鏈接器比您預期的要舊。 – 2015-12-09 19:35:07
- 1. GCC向量化Pragma
- 2. 什麼是#pragma評論(lib,「lib/glut32.lib」)?
- 3. 的#pragma評論(LIB,「WINMM.LIB」)不工作
- 4. 庫進口:的#pragma使用#pragma評論(LIB, 「../../xxx.lib」)</li> <li>評論VS Visual Studio項目輸入
- 5. Emacs評論/取消評論當前行
- 6. 如何批量評論gerrit評論?
- 7. 條評論批量
- 8. GCC#pragma停止編譯
- 9. GCC的#pragma消息忽略
- 10. Twitter相當於Facebook評論?
- 11. 獲取通過fb創建的評論的評論數量:評論(網站評論)
- 12. 批量 - 在YouTube上評論
- 13. 的Bug數量評論
- 14. Facebook評論:全部評論
- 15. fb:comments - 如何評論評論
- 16. #pragma init和#pragma fini在linux上使用gcc編譯器
- 17. IBM XL C/C++相當於#pragma GCC優化
- 18. Codeigniter刪除評論並減少評論數量
- 19. gcc中的#pragma等價物是什麼?
- 20. 如何查找SQL中給定文章的評論數量和評論數量?
- 21. 如何將評論數量與Facebook評論一起放入php變量中?
- 22. 如何使用Django的評論框架評論評論
- 23. 「評論」代表什麼「功能addComment(評論$評論)」
- 24. 從評論框(Facebook評論插件)中刪除評論
- 25. 評論
- 26. 評論
- 27. 評論
- 28. 請評論/評論:php mysql javascript(not school)
- 29. 問題與評論類型評論
- 30. /**評論。 */VS/*評論* /在Java中
我想我問錯了問題,但我會接受這個答案,因爲它沒有充分解決我問 – user2559503 2014-08-29 16:39:01