我可能誤解了編譯器是如何工作的,但我有以下情況。我有一個VC++ 2012項目。該項目包含一個包含數百個類的API。現在,我創建'main'入口點文件,我只是使用std東西。主要不包括從API的單個頭。當我編譯時,我發現API的所有東西都被編譯到可執行文件中,爲什麼會發生?是否應該在項目屬性中配置它?爲什麼Visual C++編譯器將未使用的類編譯爲可執行文件?
回答
如果通過頭文件和主例程中的引用「未使用」,也編譯作爲項目一部分的源文件。
如果你不想要那些編譯,只是從項目中刪除它們。編譯器可能能夠優化所有的東西,但這並不意味着如果第一個項目的一部分沒有編譯它們。
但我說過,主文件中沒有這些文件的引用/標題。 – 2014-09-04 09:06:10
無所謂,它們是源文件項目的一部分,它們也被編譯。如果你不使用它們,你爲什麼要把這些項目放在首位?你是否試圖導出這些符號?正如Marco A.所說的: – 2014-09-04 09:06:40
:如果你在「Project Explorer」中鏈接了一個'* .cpp'文件,它將被編譯。另一個解決方案可以是右鍵單擊/屬性檢查PE中特定文件的「排除」屬性 – lifeOfPI 2014-09-04 09:35:20
- 1. 如何將C文件編譯爲可執行文件(.exe)?
- 2. SqlCipher編譯爲Win可執行文件
- 3. 用C++編譯器編譯C99文件
- 4. 從編譯的可執行文件獲取編譯器選項?
- 5. 編譯的C文件不可執行
- 6. 使用類的編譯器的行爲
- 7. 將靜態文件編譯爲可執行文件
- 8. 爲什麼使用BullsEye編譯器編譯項目?
- 9. 爲什麼編譯器不執行類型轉換?
- 10. 將MATLAB 2009b應用程序編譯爲Windows可執行文件
- 11. 將C代碼編譯爲Visual C++ dll?
- 12. 爲什麼CMake檢查C++編譯器?
- 13. 在Visual Studio 2010中編譯`C`文件時,它是否編譯爲C++文件?
- 14. 爲什麼不編譯編譯錯誤?
- 15. 將lua腳本編譯爲獨立的可執行文件
- 16. 將Perl腳本編譯爲可執行文件的問題
- 17. 將.py編譯爲Windows和Windows上的可執行文件
- 18. 如何將.py編譯爲Debian的可執行文件
- 19. 用於最小可執行文件的C++ Windows編譯器
- 20. Visual C++編譯器,編譯錯誤stdlib.h
- 21. C++編譯時未執行的檢查
- 22. 爲什麼編譯器認爲這個類是抽象的(C++)?
- 23. 爲什麼OMNet ++編譯器爲預編譯包獲取錯誤?
- 24. 爲什麼C++編譯器在參數中不使用const時編譯失敗?
- 25. 如何編譯成可執行文件
- 26. jst:編譯目標未寫入,因爲編譯文件爲空
- 27. 如何將python編譯爲可執行文件?
- 28. 將java項目編譯爲可執行文件
- 29. 將PHP編譯爲獨立可執行文件(更快?)
- 30. 將FFMpeg編譯爲.net可執行文件
如果這些文件是該項目的一部分,他們也編譯在 – 2014-09-04 09:04:50
有沒有辦法阻止? – 2014-09-04 09:05:24
要求編譯器優化,如果你想它優化 – 2014-09-04 09:07:15