1. C/C++語言編譯生產可執行的二進制文件的過程求大神詳盡解釋,
預編譯。編譯器將你的.c、.cpp源代碼,通過解釋其中的預編譯指令,將源代碼轉換成相應的沒有任何預編譯指令的代碼。
編譯、優化。將上一步的代碼編譯成匯編指令,並作一定優化,形成對應的.s匯編代碼
匯編。將.s文件匯編成機器碼,形成對應的.o目標文件,此時是不可執行的二進制文件。生成對應的清單文件。為了連接需要,還會生成未定向符號表、導出符號表、地址重定向表等等。
連接。先根據對應的清單文件、連接文件及之間的調用關系,決定所有的目標文件及引用的庫文件在最後可執行文件中的位置;然後做一些其他事情,比如根據符號表等將目標文件中的符號地址補全等等;最終得到可執行文件。
這只是我個人的簡單理解,更詳盡的解答都可以寫成好幾本書了=_=望採納~
2. error C2679: 二進制「=」: 沒有找到接受...類型的右操作數的運算符(或沒有可接受的轉換)
error C2679二進制提示: 沒有找到接受...類型的右操作數的運算符,是因為代碼中使用了string類型,但沒有包含<string>頭文件。解決方法如下:
1、首先新建一個項目,給error2679項目添加一個cpp文件,如圖所示。
3. 怎樣將cpp文件編譯成可執行文件
可以反匯編,返匯編出的結果的執行的效果相同,但代碼差距很大。一些破解軟體、漢化軟體等就是用這個原理看到作者的編程思路,從而找到軟體的漏洞