回答
如果你使用bash作爲shell,將這些行添加到〜/ .bashrc。
alias gcc='gcc -Wall'
更新:
你可以參考這個問題上https://superuser.com/questions/519692/alias-gcc-gcc-fpermissive-or-modifying-configure-script
如果你使用make,你需要從.bashrc中內覆蓋make的變量CC和CXX: export CC="gcc -wall" export CXX="g++ -wall"
謝謝。這將是問題的正確答案。 – daltonfury42
juzzlin提出一個好方法是爲gcc編寫一個封裝器。 Marc Glisse還建議寫一個是實現我想要的最好方法。這就是我所做的。
我做了一個bash腳本,我呼籲GCC:
#!/bin/sh
echo -n "Compiling $1..."
gcc -Wall -Werror -o $(basename $1 .c).out $1
a=$?
if [[ "$a" -eq 1 ]]; then
echo "Failed!"
else
echo "Done."
echo "Executing:"
./$(basename $1 .c).out
fi
然後我複製腳本/usr/bin
並使其可執行:
sudo cp car /usr/bin
chmod +x /usr/bin/car
(腳本的名稱是car
這代表「編譯並運行」) 所以,無論何時我想編譯源文件並運行它,我都會輸入:
car mysourcefile.c
我正在考慮簡單的'#!/ bin/sh exec gcc -Wall「$ @」'(改變行在'exec'之前),但這就是腳本的美妙之處,如果你喜歡它的寫法,那就是它的樣子。 –
正如評論中所討論的那樣(儘管它不是對你的問題的直接回答),使用Makefile有很多好處。它提供了一個放置構建命令的地方,如果只使用make
構建,它將始終保持最新狀態。它還可以減輕每次構建時的運行測試。
Writing tests is a good habit,即使你只是在做一些小而無意義的作業代碼。它可以讓你發現一些你會錯過的愚蠢錯誤,並且確保你不會因爲修改它而破壞現有的代碼(特別是最後一分鐘的修改)。
的example這樣一個Makefile文件(這裏我沒有什麼可從測試版本除了因爲它是一個僅有頭組件):
all:
g++ -O2 -Wall -Werror -std=c++11 test_polynomial.cc -o test_polynomial -lgmp
g++ -O2 -Wall -Werror -std=c++11 test_g2polynomial.cc -o test_g2polynomial
./test_polynomial --log_level=test_suite
./test_g2polynomial --log_level=test_suite
clean:
rm -f test_polynomial test_g2polynomial
注意:這個例子是不是因爲我不很好的一個t甚至將CFLAGS
中的構建選項分解。如果我想添加一個標誌,我必須在兩個命令中添加它!
另一個好處是你總是運行make
來構建任何語言,依賴甚至構建系統(當使用scons或其他構建系統處理項目時,我仍然編寫一個Makefile來執行我所做的所有命令當建設和測試!)。
這允許我的個人補充(但在這裏,我們完全離題):我有一個名爲autobuild
的構建腳本在make each time I write a file in vim上循環。我在屏幕上編碼並在small window at the bottom of my screen中運行autobuild
。這樣,每當我寫入文件時,就會建立並測試每個更改。
- 1. 獲取默認GCC警告的列表
- 2. 禁用所有gcc警告
- 3. 顯示PyCUDA中的所有NVCC警告
- 4. Eclipse(Juno)不顯示所有警告
- 5. 顯示所有錯誤和警告
- 6. 顯示IntelliJ中的所有警告
- 7. Python - 再次顯示'once'警告(重置所有警告註冊表)
- 8. 如何顯示警告框?
- 9. 使用logback-classic/slf4j配置默認的警告/錯誤日誌
- 10. 警告:現場XXX沒有默認值
- 11. 使GtkScrolledWindow默認顯示所有子項
- 12. javascript:顯示警告,如果不匹配
- 13. 如何告訴我的ModelAdmin過濾器默認不顯示所有記錄?
- 14. 您正在使用App ID默認配置警告在配置Identify Providers之後警告IBM Bluemix APPID
- 15. GCC -WeffC++警告
- 16. gcc:__fread_chk_warn警告
- 17. 如何顯示解決方案的所有StyleCop警告?
- 18. gnu gcc如何禁止警告:在此聲明中忽略'typedef'[默認啓用]
- 19. 如何將SBT默認日誌級別設置爲「警告」?
- 20. gcc configure,設置默認值?
- 21. 確認之前顯示警告
- 22. 如何配置Visual Studio以默認摺疊所有區域?
- 23. 我如何避免「警告:Field'xxx'在Storm中沒有默認值」?
- 24. 如何在JQuery DataTable中默認顯示所有行
- 25. 如何沉默gcc警告對抗c + + 17功能?
- 26. GADInterstitial AdMob每次顯示默認廣告
- 27. 運行沒有顯示任何警告
- 28. 抑制gcc警告:「警告:這是以前定義的位置」
- 29. 警告框顯示
- 30. Drupal:顯示警告
爲什麼不把它放在makefile中? –
我不確定您是否可以使用-Wall始終開啓配置GCC,但您可以創建一個簡單的包裝腳本,它總是通過-Wall調用實際的gcc並轉發其他參數。 – juzzlin
@ IgnacioVazquez-Abrams因爲我是一名學生,只使用makefile編譯單個文件程序。 – daltonfury42